我正在使用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];
}
}
这适用于初始创建单元格。但是当单击该项并显示详细视图时,我将'read'值切换为'true'并将setHighlighted选项更改为单元格中UIButton的false,但是当从详细信息返回时它不会更改视图。仅当单元格滚动离开屏幕并重新创建时才会反映出更改。导航到详细视图后,如何强制重绘按钮?
答案 0 :(得分:1)
我不认为方法setHighlighted:
是正确的。这是文档:
如果控件是,则指定YES 突出;否则没有。
默认情况下,控件不是 突出显示。 UIControl自动 设置并清除此状态 触摸进入时自动进行 在跟踪期间以及何时退出 是一个修饰。
答案 1 :(得分:1)
您可以通过简单地重新加载相关单元格来完成突出显示。查看UITableView的- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
,并在设置突出显示后使用它重新加载单元格。