带有用于突出显示的图像的自定义 UITableViewCell
Posted
技术标签:
【中文标题】带有用于突出显示的图像的自定义 UITableViewCell【英文标题】:custom UITableViewCell with image for highlighting 【发布时间】:2013-05-01 06:48:52 【问题描述】:我有一个以图像为背景的自定义 UITableViewCell(从 XIB 实例化)。现在我希望在选择单元格时将另一个图像作为背景(类似于标准单元格的蓝色闪烁)。我已经尝试在(void)setSelected:(BOOL)selected animated:(BOOL)animated
甚至didSelectRowAtIndexPath
中使用setSelectedBackgroundView
设置它,但突出显示的背景不会出现。我做错了什么?
【问题讨论】:
【参考方案1】:在您的自定义 Cell.xib 中
接下来做这个
最后这样做
【讨论】:
感谢图片解释,但您错过了将 selectionStyle 设置为 none。【参考方案2】:你试过像下面这样的
从 TableView 数据源方法中调用下面的方法 (cellForAtIndexPath)
用于执行相同的任务
- (void)setCellBGColorNormalAndSelectedForTableViewCell:(UITableViewCell*)cell cellForRowAtIndexPath:(NSIndexPath*)indexPath
UIImageView *normalCellBG = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];
[normalCellBG setImage:[UIImage imageNamed:@"box_nonselected.png"]];//Set Image for Normal
[normalCellBG setBackgroundColor:[UIColor clearColor]];
[cell setBackgroundView:normalCellBG];
UIImageView *selecetedCellBG = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];
[selecetedCellBG setImage:[UIImage imageNamed:@"box_selected.png"]];//Set Name for selected Cell
[selecetedCellBG setBackgroundColor:[UIColor clearColor]];
[cell setSelectedBackgroundView:selecetedCellBG ];
【讨论】:
老兄,我也有同样的问题。您的回答效果很好,但是如果我们在cellForAtIndexPath
中写入并且图像被覆盖,则此方法会被多次调用。如何只调用一次?【参考方案3】:
您可以使用为 CustomCell
创建的 XIB
设置选定的背景视图。您只需要将UIImageView
带到XIB
上(imageview
必须与CustomCell
具有相同的高度)。现在将CustomCell
的名为“selectedBackgroundView
”的插座连接到您作为选定背景视图的UIImageView
。还要检查 selectionStyle
的 CustomCell
是否不是 none 。
【讨论】:
以上是关于带有用于突出显示的图像的自定义 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章