在触地得分iphone上突出显示自定义绘制的单元格

时间:2009-10-31 04:04:07

标签: iphone

我是自定义绘图单元格,如何突出显示触地单元格

感谢

3 个答案:

答案 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];
}