UITableViewCell - 向上或向下滚动时重置内容

时间:2015-11-17 23:32:33

标签: ios xcode uitableview scroll swift2.1

我遇到这个问题,我的原型动态UITableViewCell上的数据值在向上或向下滚动时会被重置。

我正在检查其他线程中建议的单元格为零,因为重复使用了单元格但是执行从未达到过。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    // Currency formatter
    let formatter = NSNumberFormatter()
    formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
    formatter.locale = NSLocale(localeIdentifier: "el-GR")

    // Table view cells are reused and should be dequeued using a cell identifier.
    let cellIdentifier = "MenuItemTableViewCell"

    var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MenuItemTableViewCell

    if cell.isEqual(nil) {
        cell = UITableViewCell(style: .Default, reuseIdentifier: "MenuItemTableViewCell") as! MenuItemTableViewCell
    }

    // Match category (section) with items from data source
    let itemsPerSection = items.filter({ $0.category == self.categories[indexPath.section] })
    let item = itemsPerSection[indexPath.row]

    // cell data
    cell.cellTitle.text = item.name + "  " + formatter.stringFromNumber(item.price)!
    cell.cellDescription.text = item.description

请帮忙吗?

此致 波利斯

1 个答案:

答案 0 :(得分:0)

每次细胞离开屏幕并再次打开时,细胞就会重新创建。因此,如果您修改单元格(即,如您使用步进器描述的那样),则必须保存该修改后的值,以便下次它在屏幕上显示时使用该修改后的值创建。