0
为什么在滚动后在UITableViewCell中获得双重文本?为什么在滚动后我在UITableViewCell中获得双重内容? (Swift)
下面是初始化单元代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("IskanjeCell") as IskanjeShowTableViewCell!
cell.backgroundColor = UIColor.clearColor()
cell.setCell(DanKanali, indexPath: indexPath)
return cell
}
func setCell(danKanali:[DatePS], indexPath: NSIndexPath)
{
let vseOddaje = danKanali[indexPath.section].programi[indexPath.row].oddaje
let program:Program = danKanali[indexPath.section].programi[indexPath.row]
logoWrapper.frame = CGRectMake(5, CGFloat(5+(vseOddaje.count-1) * 10), logoWrapper.frame.width, logoWrapper.frame.height)
var sl = program.id.intValue
sl = sl + 1
var slik = String(sl)
mali_logo.image = UIImage(contentsOfFile: boundle.pathForResource(slik, ofType: "png")!)
ime_programa.text = program.ime
var i = 0
var base = 15
if program.oddaje.count == 1
{
base = 30 //če je samo 1 show, da postavi na sredino celice
}
for oddaja in program.oddaje
{
var showWrapper = UIView(frame: CGRectMake(100, CGFloat(base + i * 45), 300, 40))
var naslov = UILabel(frame: CGRectMake(0, 0, 300, 20))
var kategorija = UILabel(frame: CGRectMake(0, 17, 250, 20))
naslov.font = UIFont.boldSystemFontOfSize(14)
naslov.text = "\(oddaja.ura) - \(oddaja.naslov)"
naslov.textColor = UIColor.whiteColor()
kategorija.text = "\(oddaja.kategorija)/\(oddaja.podkategorija)"
kategorija.textColor = UIColor.whiteColor()
kategorija.font = UIFont.systemFontOfSize(13)
showWrapper.addSubview(naslov)
showWrapper.addSubview(kategorija)
self.contentView.addSubview(showWrapper)
i++
}
}
这就是我得到:
我已经与如果细胞==零试过了,但是这是aperantly不更快速地支持,还是我错了?
诊断不错,但回答不完整。完整答案是给子视图一个标签。只有在通过viewWithTag找不到时才创建并添加子视图,但是无条件地配置子视图。 – danh 2014-10-30 21:00:46
我不使用'tag';我更喜欢子类化,并使视图关系清晰。具有将名称应用于视图的能力比任意整数更有用。 – 2014-10-31 13:21:53
好吧,如何在不调用setCell方法的情况下重用单元格,如果单元格已经设置? – 2014-10-31 14:21:30