今天发现一个问题,在一个有许多按钮的页面中,如果我同时点击两个按钮(push新页面的按钮),那么那两个按钮的点击事件都会走,并且会同时push两次!那么这个问题应该怎么处理呢:
1.第一种方法,在AppDelegate中,添加如下:
[[UIButton appearance] setExclusiveTouch:YES];
问题就搞定了。
2.第二种方法,为button写一个分类,设置属性button.exclusiveTouch = YES;
拓展:
1.exclusiveTouch是UIView中的一个属性,BOOL类型的,系统默认它是NO,也就是不互斥,可以让多个点击事件同时触发,将其设为YES,就保证了多次点击只触发一个点击事件。
2.将exclusiveTouch设为YES(互斥),那么当你点击按钮不松开的时候,点击其他按钮是不会有响应事件的触发。
3.点击事件是可以缓存的,例如当主线程被阻塞的时候。如果我们对按钮做重复点击的话,会造成重复响应。
网友评论