如何刷新UITableViewCell?

4th*_*ace 8 iphone cocoa-touch uitableview

我有一个带有自定义UITableViewCell的UITableView.在cellForRowAtIndexPath中,我为每个单元格中的标签指定一种字体,因为用户可以随时更改字体大小.要更改字体大小,用户单击tableview下方的按钮,该按钮会使用设置显示另一个视图.一旦他们选择了字体大小并单击完成,该视图就会消失并再次显示tableview.我在每个观看区域显示一个单元格.因此,用户在滚动到下一个单元格之前看不到字体更改.当前的单元格是我想要更新的单元格.

我已经从设置屏幕尝试了reloadData但是没有用.tableview是一个UITableViewController,但是一旦设置屏幕消失,viewWillAppear就不会触发.我已经尝试使自定义单元格成为tableview的属性,因此可以从设置视图访问它,然后调用setNeedsDisplay和setNeedsLayout.那些也不起作用.有什么建议?

bbr*_*own 12

在您的自定义UITableViewCell中,调用[self setNeedsLayout];它应该在下一个循环重新绘制您的单元格.我用它来进行异步图像加载,因为我从Web上提取图像并且工作正常.


Nik*_*uhe 5

对于仍然存在的单元格,您必须更新标签的字体.您需要一种方法来访问自定义单元格中的自定义标签.

更改字体大小后执行以下操作:

for (MyCell* cell in [theTableView visibleCells]) {
    [cell.myLabel.font = newFont];
}
Run Code Online (Sandbox Code Playgroud)