0

看看这个方法:

[textButton addTarget:self action:@selector(articleModalWillAppear:) forControlEvents:UIControlEventTouchDown];

当按钮被触摸时,它会调用articleModalWillAppear:. 效果很好。问题是按钮在拖动时也会调用动作。(按钮很大,包含一个文本段落)

我把六个这样的按钮作为 UIScrollView 的子视图(带有 UIPageControl)。水平拖动 UIScrollView 时效果很好。但是它在垂直拖动时会弹出模态视图,因为当手指在按钮上拖动时,按钮将其视为触摸,并且触摸调用articleModalWillAppear:.

如果你仍然不明白我的问题,想想纽约时报的 iPad 应用程序。您可以水平拖动页面。您可以触摸文章描述以转到完整的文章视图。但是,当您在文章描述中垂直拖动时,什么也不会发生。如何做到这一点?

4

2 回答 2

1

使用不同的事件,例如:

[textButton addTarget:self action:@selector(articleModalWillAppear:) forControlEvents:UIControlEventTouchUpInside];

UIControlEventTouchUpInside是这种情况下最常用的。

于 2011-02-09T13:48:38.183 回答
1

采用forControlEvents:UIControlEventTouchUpInside

仅当用户在按钮内部触摸然后在同一个按钮中触摸时才注册单击事件,并忽略拖动。

于 2011-02-09T13:49:20.727 回答