看看这个方法:
[textButton addTarget:self action:@selector(articleModalWillAppear:)
forControlEvents:UIControlEventTouchDown];
触摸该按钮时,会调用articleModalWillAppear:
。这很好用。问题是按钮在拖动时也会调用操作。 (按钮很大,包含文本段落)
我把6个这样的按钮作为UIScrollView的子视图(使用UIPageControl)。水平拖动UIScrollView时效果很好。但是当垂直拖动时会弹出模态视图,因为当手指拖过按钮时,按钮会将其视为触摸,触摸会调用articleModalWillAppear:
。
如果您仍然不了解我的问题,请考虑纽约时报的iPad应用程序。您可以水平拖动页面。您可以触摸文章说明以转到完整的文章视图。但是在文章描述中垂直拖动时没有任何反应。怎么做到这一点?
答案 0 :(得分:1)
使用其他事件,例如:
[textButton addTarget:self action:@selector(articleModalWillAppear:) forControlEvents:UIControlEventTouchUpInside];
在这种情况下, UIControlEventTouchUpInside
是最常用的。
答案 1 :(得分:1)
使用forControlEvents:UIControlEventTouchUpInside
只有在用户触摸按钮内部然后触摸同一按钮时才会注册点击事件,并忽略拖动。