iOS图层颜色改变



对于我的自定义UIView,我已经重写了touchesBegan方法。我告诉它要做的是改变它的图层的背景颜色:

dispatch_async(dispatch_get_main_queue()){
    self.layer.backgroundColor = clr_someCGColor
}

它的行为很奇怪。如果我在横向模式下快速点击视图,它会做得很好,但如果我在纵向模式下这样做,我必须按住它一段时间才能看到结果,然而,如果我快速点击,touchesEnded方法会立即被调用。是什么原因导致了纵向延迟?

去掉dispatch_async包装。它所做的只是造成延迟(我们不能在主线程上执行,直到,正如你正确地说,水龙头结束,touchesEnded来了又走)。在touchesBegan中,你已经在主线程上了,所以不需要这个额外的延迟。

使用手势识别器就更好了。

最新更新