我有一个自定义的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更新。 –