UILabel 的字体在视图重新出现之前不会调整

CSj*_*kie 3 xcode uitableview uifont swift

使用故事板,我创建了一个带有标签的单元格的表格视图。

我希望能够轻松地为应用程序中的所有标签分配相同的字体,因此我在帮助文件(smallFont、mediumFont 和 largeFont)中创建了一些字体,并在其中tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)设置每个标签以使用我想要的字体(即cell.font)。 label.font = Common.fonts.mediumFont)。

表视图第一次显示时使用的是故事板中定义的字体,并且在您离开视图并返回之前它不使用我编程的字体。

我可以通过更改情节提要以使用我以编程方式放置的相同字体来消除视觉调整大小,但我希望能够仅通过调整通用文件中的字体来更改整个应用程序中的字体。

当视图首次出现时,如何覆盖故事板的字体并强制它使用编程的字体?

编辑:添加更多信息。

当我滚动表格时,标签字体从故事板大小更改为编程字体。

pet*_*syn 5

我已经通过在cellForRowAtIndexPathwillDisplayCell方法中设置字体来修复它。

willDisplayCell实现这种方式:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, 
               forRowAt indexPath: IndexPath) {
    // e.g.
    let myCell = cell as! MyCustomCell
    myCell.label.font = UIFont.boldSystemFont(ofSize: 17.0)
}
Run Code Online (Sandbox Code Playgroud)

注意:字体是cellwillDisplayCell方法中的输入参数上设置的,如上代码所示。如果单元格是从tableView使用中取出的tableView.dequeueReusableCell(...),它将无法工作。