我有一个带有几个子视图的自定义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
。
当我在设备上选择单元格时,我遇到了间歇性问题,即预期的操作无法触发。具体来说,我提出了一个模态视图控制器。奇怪的是,如果在选择单元格后,我触摸屏幕上的任何地方,则会显示原始模态。它的想法就是动画排队了#39;不知怎的,直到收到另一个触摸事件。
通过记录,我知道didSelectCellAtIndexPath:
和我的演示代码会在第一次触摸时立即触发。
当我删除此自定义突出显示实现时,将恢复正常服务。
什么可能导致这种奇怪的行为?
答案 0 :(得分:0)
如果不查看更多代码,很难说,但看起来你的模态演示文稿似乎是在与主要不同的线程上执行的。您可以尝试以下方式:
dispatch_async(dispatch_get_main_queue(), ^{ /* present modal here */ });