UITableView
を作成し、JSONデータで埋めました。私のAPIの中に入れました。私はすべてを正しく取得して配置しますが、行をスクロールまたは削除するとすべてがうんざりになります!JSONデータをUITableViewに正しく表示する
ラベルとイメージ妨害します。あなたは、細胞(それはすでに以前に追加されたサブビューを持つことができるように)再利用にサブビューを追加しているためだ
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
var dict = productsArrayResult[indexPath.row]
let cellImage = UIImageView(frame: CGRect(x: 5, y: 5, width: view.frame.size.width/3, height: 90))
cellImage.contentMode = .scaleAspectFit
let productMainImageString = dict["id"] as! Int
let url = "https://example.com/api/DigitalCatalog/v1/getImage?id=\(productMainImageString)&name=primary"
self.downloadImage(url, inView: cellImage)
cell.addSubview(cellImage)
let cellTitle = UILabel(frame: CGRect(x: view.frame.size.width/3, y: 5, width: (view.frame.size.width/3) * 1.9, height: 40))
cellTitle.textColor = UIColor.darkGray
cellTitle.textAlignment = .right
cellTitle.text = dict["title"] as? String
cellTitle.font = cellTitle.font.withSize(self.view.frame.height * self.relativeFontConstantT)
cell.addSubview(cellTitle)
let cellDescription = UILabel(frame: CGRect(x: view.frame.size.width/3, y: 55, width: (view.frame.size.width/3) * 1.9, height: 40))
cellDescription.textColor = UIColor.darkGray
cellDescription.textAlignment = .right
cellDescription.text = dict["description"] as? String
cellDescription.font = cellDescription.font.withSize(self.view.frame.height * self.relativeFontConstant)
cell.addSubview(cellDescription)
return cell
}
あなたはすべて間違ってやっている、あなたはのUITableViewCellのサブクラス化のために別々のクラスを作成し、そこにすべてのコントロールを追加する必要があり、細胞を作成するためのこの方法は、 –
@Winnストーン正しくありません:ザッツセル理由再利用され、余分な時間を費やしてラベルや画像を追加します –