无法阻止在UITableViewCell中重用单元格:Swift

时间:2016-07-05 16:12:01

标签: ios swift uitableview

如果我尝试对单元格执行操作,则每隔8行重复一次。

extension ExploreDetailViewController: UITableViewDataSource {

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return specificItemInfo.count

}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     return specificItemInfo[section].subItemArray!.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("PriceCell", forIndexPath: indexPath) as! PriceTableViewCell
        cell.configureCell1(specificItemInfo[indexPath.section].subItemArray![indexPath.row], specificItemInfo: specificItemInfo[(indexPath.section)])
        cell.delegate = self
        return cell
    }

func tableView(tableView: UITableView, viewForHeaderInSection section: Int)   -> UIView? {
    let cell = tableView.dequeueReusableCellWithIdentifier("ItemCell") as! ItemTableViewCell
    cell.configureCell(specificItemInfo[section])
    return cell
}

在单元格内部,我使用一个按钮来设置标签的值。但是,为一个细胞设定的值再次低于8个细胞。有没有办法防止这种情况发生?

1 个答案:

答案 0 :(得分:1)

  

在单元格内部,我使用按钮设置标签的值

模型 - 视图 - 控制器!正如您所说,问题是该单元格在另一行中被重用。解决方案是在使用按钮时将新标签值存储在模型中,以便下次调用junitPlatformTest { if (System.getProperty('DEBUG', 'false') == 'true') { jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10999' } } 时,它会将此行的正确值拉出模型。 从不使用单元格本身存储任何东西!它只是一个视图。仅存储在模型中