当我尝试将 "Font" 应用于一个 tableview 单元格时,它会在滚动 tableview 时自动应用于其他单元格

When i try to apply "Font" to one tableview cell it automatically apply to other cells when scroll tableview

我有一个自定义表格视图。

我需要将粗体斜体 (Helvetica-BoldOblique) 字体设置为仅 cell.But 当它滚动表格视图时它也适用于其他单元格 one.How 来解决这个问题?

    func applyFontToTableviewCell() {

    var couIn = NSIndexPath(forRow: 2, inSection: 0)
    var couCell = colorTableView.cellForRowAtIndexPath(couIn)
    couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)


    }

我在 cellForRowAtIndexPath 中尝试了同样的代码 also.But 出现了同样的问题。

提前致谢。

你必须通过 if 条件来检查:

if (NSIndexPath(forRow: 2, inSection: 0)){
      couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)
}
else{
      //set your default font
      couCell?.textLabel?.font = UIFont(name: "Helvetica", size: 18.0)
}

如果你想检查奇数和偶数那么

if yourindexpath % 2 == 0 {
}

所以,可能会像

if (NSIndexPath(forRow: indexPath.row % 2, inSection: 0)){
  couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)
}
else{
  //set your default font
  couCell?.textLabel?.font = UIFont(name: "Helvetica", size: 18.0)
}

您可以按照下面的方式在替代单元格上应用粗体。

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let couCell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as UITableViewCell

            let row = indexPath.row

            if row == 2 || row == 4 || row == 6 {
              couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)
           }
          else{
               couCell?.textLabel?.font = UIFont(name: "Helvetica", size: 18.0)
           }

            return cell
        }

希望对您有所帮助。

我有同样的问题,通过在 willDisplayCell 方法

中应用字体修复
override func tableView(_ tableView: UITableView, willDisplay cell:  UITableViewCell, forRowAt indexPath: IndexPath) {
        let row = indexPath.row

        if row == 2 || row == 4 || row == 6 {
          cell.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)
       }
      else{
           cell.textLabel?.font = UIFont(name: "Helvetica", size: 18.0)
       }
    }