当我尝试将“字体”应用于一个表格视图单元时,滚动表格视图时它会自动应用于其他单元。

3

我有一个自定义的tableView。

我需要将粗斜体(Helvetica-BoldOblique)字体仅应用于单元格。但当滚动tableView时,它也逐个应用到其他单元格上。如何解决?

    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 中尝试了相同的代码,但是出现了同样的问题。谢谢提前。

2
如果 (NSIndexPath(forRow: 0, inSection: 0)==1){ couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0)} else{//使用普通字体} - Arun
我知道问题出在哪里了... - Arun
只需要加粗一行,其他的都是正常的,对吗? - Arun
你能详细解释一下在什么条件下需要吗? - Arun
替换这个 couCell?.textLabel?.font = UIFont(name: "Helvetica-BoldOblique", size: 18.0) @ashish 代码。 - Arun
显示剩余10条评论
3个回答

2

您需要通过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)
}

好的,我该如何确定单元格“var couCell = colorTableView.cellForRowAtIndexPath()”?我还需要找到第二个单元格。 - Lydia
但是当我滚动表格视图时,它会应用于其他单元格。我尝试了很多种方法。 - Lydia
谢谢。但是仍然存在同样的问题。 - Lydia

2
您可以像下面这样在交替单元格上应用加粗字体。
 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
        }

希望这能帮助到您。

谢谢。但是有同样的问题。 - Lydia
@Lydia,你遇到了什么问题? - Jatin Patel - JP
是的,但是当滚动表格视图时,所有单元格文本都会加粗。 - Lydia
@Lydia,我已根据您的要求更新了代码,请替换原有代码。在我的测试中,它运行良好。 - Jatin Patel - JP
谢谢,那么 couCell 呢?你会用 cell 替换它吗? - Lydia
显示剩余3条评论

0

我遇到了同样的问题,通过在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)
       }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接