UITableViewCell子类没有响应第一次触摸

时间:2014-03-23 17:34:17

标签: ios iphone cocoa-touch uitableview

我有一个带有几个子视图的自定义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:和我的演示代码会在第一次触摸时立即触发。

当我删除此自定义突出显示实现时,将恢复正常服务。

什么可能导致这种奇怪的行为?

1 个答案:

答案 0 :(得分:0)

如果不查看更多代码,很难说,但看起来你的模态演示文稿似乎是在与主要不同的线程上执行的。您可以尝试以下方式:

dispatch_async(dispatch_get_main_queue(), ^{ /* present modal here */ });