0

当一个 tableviewcell 被选中或突出显示时,我们发现它的背景颜色发生了变化(例如,变为蓝色)。我想知道在这个过程中调用了多少个方法,什么方法。希望得到您的答复!

此外,我想深入了解一些方法,例如,调用了哪个方法并更改了背景颜色。

4

3 回答 3

1

这些方法被调用,如果你想用你的需要覆盖它,那么你必须覆盖这些方法。

- (void)setHighlighted: (BOOL)highlighted animated: (BOOL)animated
{
    // don't highlight
}

- (void)setSelected: (BOOL)selected animated: (BOOL)animated 
{
    // don't select
    //[super setSelected:selected animated:animated];
}

这里是纪录片

于 2013-08-30T08:17:30.107 回答
0

这些是在UITableViewCell录音事件上调用的方法:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
  // do something
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  // do something
}

访问 Apple 文档以设置/选择UITableViewCell

http://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006938-CH3-SW69

http://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006938-CH3-SW3

此外,您可以通过以下方式获得更多控制:

 - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
     { 
         // do something 
     }
 - (void) tableView: (UITableView *) tableView accessoryButtonTappedForRowWithIndexPath: (NSIndexPath *) indexPath
     { 
        // do something
     }
于 2013-08-30T08:24:24.057 回答
0

查看 Table View 类,我发现了这个顺序:

tableView:shouldHighlightRowAtIndexPath:
tableView:didHighlightRowAtIndexPath:
tableView:willSelectRowAtIndexPath:
tableView:didSelectRowAtIndexPath:

如果您打开 UITableView 头文件,您可以了解更多信息。

于 2013-08-30T08:25:16.343 回答