首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在滚动后我会在UITableViewCell中获得双倍的内容?(Swift)

为什么在滚动后我会在UITableViewCell中获得双倍的内容?(Swift)
EN

Stack Overflow用户
提问于 2014-10-30 20:00:36
回答 1查看 485关注 0票数 0

为什么我在滚动后在UITableViewCell中得到双文本?

下面是初始化单元格的代码:

代码语言:javascript
复制
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++
    }
}

这就是我所得到的:

我已经试过了if cell == 0,但是这已经不再支持了,还是我错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 20:02:41

setCell中,您正在调用addSubview,但在重新配置单元格时,您不会删除或重用它们。

编辑:在IskanjeShowTableViewCell中添加一个showWrapper对象的NSMutableArray。目标-C如下

代码语言:javascript
复制
@interface IskanjeShowTableViewCell : UITableViewCell
// ...
@property (strong) NSMutableArray *showWrappers;
@end

- (void)setCell:(...) {
  // ...

  [self.showWrappers makeObjectsPerformSelector:@selector(removeFromSuperview)];
  [self.showWrappers removeAllObjects];
  for (id oddaja in program.oddaje) {
    // ...
    [self.showWrappers addObject:showWrapper];
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26662196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档