我正在使用UIButton来显示表格单元项目并将其从已读切换为未读。
我使用蓝色图像作为背景,以显示未读项目的时间,并且可以正常工作,但我认为使用setHighlighted功能会更好,因为它可以节省向App添加额外图像的时间。我使用的代码如下:
- (void)updateReadButton{
if(article.read.boolValue){
//[readButton setBackgroundImage:nil forState:UIControlStateNormal];
[readButton setHighlighted:FALSE];
[readButton setNeedsLayout];
} else {
[readButton setHighlighted:TRUE];
[readButton setNeedsLayout];
}
}
这对于单元的初始创建工作正常。但是,当单击该项目并显示详细信息视图时,我将单元格中的UIButton的'read'值切换为'true'并将setHighlighted选项更改为false,但是从详细信息返回时并没有改变视图。仅当单元滚动到屏幕之外并重新创建时,更改才会反映出来。导航到详细视图后,如何强制重新绘制按钮?
最佳答案
您可以通过简单地重新加载有问题的单元格来完成突出显示。窥视UITableView的- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
并在设置突出显示后使用它重新加载单元格。