【发布时间】:2014-03-23 17:34:17
【问题描述】:
我有一个自定义的UITableViewCell 有几个子视图。单元格的设计使得我想要其中一个子视图 (roundedContainer) 的自定义突出显示行为:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
[super setHighlighted:highlighted animated:animated];
self.roundedContainer.backgroundColor = highlighted ? [UIColor colorWithRed:0.85 green:0.85 blue:0.85 alpha:1.0] : [UIColor paperWhiteColor];
}
创建单元格时,我还将其选择样式设置为UITableViewSelectionStyleNone。
当我在我的设备上选择单元格时,我遇到了一个间歇性问题,即没有触发预期的操作。具体来说,我正在展示一个模态视图控制器。奇怪的是,如果在选择单元格后,我触摸屏幕上的 anywhere else,则会显示原始模式。它认为动画以某种方式“排队”,直到收到另一个触摸事件。
通过日志记录,我知道didSelectCellAtIndexPath: 和我的演示代码在第一次触摸时立即触发。
当我删除这个自定义高亮实现时,正常服务会恢复。
什么会导致这种奇怪的行为?
【问题讨论】:
标签: ios iphone cocoa-touch uitableview