每次当用户cell
在UITableView
. 你能告诉我,怎么可能做到这一点?
我想这样做是因为我有一个带有图片的自定义单元格,并且每次用户突出显示该单元格时我都想更改图片。
UPD:我所说的高亮是指用户只是高亮一个单元格,而不是松开手指。通过选择,我的意思是当 didSelectRowAtIndexPath 被启动时(所以用户在按下它后从单元格中释放手指)
每次当用户cell
在UITableView
. 你能告诉我,怎么可能做到这一点?
我想这样做是因为我有一个带有图片的自定义单元格,并且每次用户突出显示该单元格时我都想更改图片。
UPD:我所说的高亮是指用户只是高亮一个单元格,而不是松开手指。通过选择,我的意思是当 didSelectRowAtIndexPath 被启动时(所以用户在按下它后从单元格中释放手指)
您如何设想用户会“突出显示”一个单元格而不是“选择”一个单元格?
在 iOS(或任何基于触摸的环境)中,没有仅突出显示一个单元格而不是选择一个单元格的概念。当用户触摸单元格时,您得到的唯一回调是 didSelectRowAtIndexPath:
可能值得在此处阅读有关表格的文档。
更新:
嗯,好的,在这种情况下,你想像这样设置单元格 imageView 的 highlightImage 属性;
cell.imageView.image = [UIImage imageNamed:@"normal_image.png"];
cell.imageView.highlightedImage = [UIImage imageNamed:@"highlighted_image.png"];
我不明白你的问题..你不想使用方法 selectRowAtIndexPath 吗?
如果你想在用户选择一行时执行一个方法:
- 您可以使用方法 selectRowAtIndexPath 并执行您的方法。
您还可以在单元格内创建一个不可见的 UIButton ,当单击单元格时,您将单击按钮并执行您的方法。. .
从 iOS 6.0 开始,UITableViewDelegate有 3 种方法来处理单元格突出显示:
- tableView:shouldHighlightRowAtIndexPath:
- tableView:didHighlightRowAtIndexPath:
- tableView:didUnhighlightRowAtIndexPath:
你应该使用它们,就像在这个例子中一样:
- (BOOL)tableView:(UITableView*)tableView shouldHighlightRowAtIndexPath:(NSIndexPath*)indexPath
{
return YES;
}
- (void)tableView:(UITableView*)tableView didHighlightRowAtIndexPath:(NSIndexPath*)indexPath
{
MyTableViewCell* cell = (MyTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.myImageView.image = [UIImage imageNamed:@"myCellHigh"];
}
- (void)tableView:(UITableView*)tableView didUnhighlightRowAtIndexPath:(NSIndexPath*)indexPath
{
MyTableViewCell* cell = (MyTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.myImageView.image = [UIImage imageNamed:@"myCellUnhigh"];
}