我正在使用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并在设置突出显示后使用它重新加载单元格。

09-20 08:04