我是自定义绘图单元格,如何突出显示触地单元格
感谢
答案 0 :(得分:6)
UITableViewCell有两个被调用的方法:
- (void) setHighlighted:(BOOL)highlighted
- (void) setSelected:(BOOL)selected
基本上setHighlighted在触摸时调用(并且在触摸时取消设置),而setSelected在选择“卡住”(用户意图按下单元格)时调用。如果您使用普通的表格视图和单元格组合,您会发现当您滚动它们时,单元格可以短暂突出显示并且不会突出显示。
要突出显示背景,如果您在drawRect中使用自定义背景填充,则可以更改其颜色并在setHighlighted中调用setNeedsDisplay以使其强制使用新背景重绘。
答案 1 :(得分:0)
使用其中一个或两个:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
您必须提供这些方法,并在选择行时调用它们。您可以更改视图以使其显示为选中状态。如果您没有对单元格进行过多次更改,则可以使用selectedBackgroundView突出显示选择。
答案 2 :(得分:0)
它不适用于自定义单元格
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES]; - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
我在自定义单元格中使用UIImageView来为其设置动画。
- (IBAction)highlighteMe
{
shadowImage.alpha = 0.f;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.3];
shadowImage.alpha = 0.3f;
[UIView commitAnimations];
}