繁体   English   中英

不需要的延迟突出显示UIButton

[英]Unwanted delay highlighting UIButton

我有一个连接到IBAction的自定义UIButton。 该动作需要很长时间才能执行,并且按钮不会响应用户的触摸而突出显示,直到整个动作完成为止。 我希望按钮立即突出显示,以使用户知道它正在做某事。 知道如何消除这种滞后吗? (无需更改IBAction的功能)

唯一的方法是在线程上进行实际工作。 例如,您可以使用dispatch_async 注意在工作过程中如果再发生其他手势,将会发生什么情况。

我只是有同样的问题。 该操作调用了您所说的方式,但是我修复了按钮突出显示的方式:

  1. UIButton创建子类
  2. 覆盖方法hitTest

     -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if (CGRectContainsPoint(self.bounds, point)) { self.imageView.image = [self imageForState:UIControlStateHighlighted]; return self; } return [super hitTest:point withEvent:event]; } 

PS:对于正常状态和突出显示状态,我使用单独的图像,因此我将adjustsImageWhenHighlighted设置为NO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM