我有一個自定義的UITableViewCell有兩個子視圖,一個標籤和一個UIView。 UIView是一個自定義視圖的容器,它將在運行時加載,並且在IB中有一個紅色背景。自定義的UITableViewCell加載不正確
自定義單元格具有設置單元格的方法setupWithData(data:Data)。這個方法是從tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath)和tableView數據源中的數據調用的。
但是,當加載tableView時,只看到前幾個單元格的紅色背景(沒有自定義視圖)。當我向下滾動時,自定義視圖開始出現。奇怪的是,所有單元格的標籤都具有正確的文本。
我調查了使用接口調試器,發現自定義視圖不會被添加到容器視圖,但其所有約束(寬度,高度,midX,midY)設置爲0.此外,我還看了我向下滾動(實際上已經正確加載了我的自定義視圖的單元格)並且意識到有時容器視圖有時會使用不同數據對我的自定義視圖進行兩個子視圖。
我將不勝感激這方面的幫助。
N.B:我使用的斯威夫特3
更新
這裏是我的setup
代碼:
func setupWithParticle(_ particle: ParticleProtocol, isFavourite: Bool = false) {
self.particleLabel.text = particle.name(withColor: false)
let particleView = ParticleView(position: CGPoint.zero, width: self.particleViewContainer.width, particle: particle)
particleView.respondsToTouch = false
particleView.setBorders([.Top, .Left, .Right, .Bottom], width: 1, color: .black())
if isFavourite {
particleView.backgroundColor = #colorLiteral(red: 0.9559464455, green: 0.7389599085, blue: 0.2778314948, alpha: 1)
}
self.particleViewContainer.subviews.forEach {
$0.removeFromSuperview()
}
self.particleViewContainer.addSubview(particleView)
}
請把你的setupWithData東西。我們無法想象沒有代碼你做了什麼。 –
@DharmbirSingh更新。 –