2011-02-09 10 views
0

は、この方法を見てみましょうドラッグして、触れていないに応答する方法:ボタンをタッチするとUIButtonのみ

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

を、それがarticleModalWillAppear:を呼び出します。それはうまくいく。問題は、ボタンがドラッグされたときにアクションを呼び出すことです。

私はUIScrollViewのサブビュー(UIPageControl付き)のような6つのボタンを配置しました。 UIScrollViewを水平方向にドラッグするとうまく動作します。しかし、ボタンをドラッグするとボタンがタッチとみなされ、タッチはarticleModalWillAppear:と呼ばれるので、垂直方向にドラッグするとモーダルビューがポップアップします。

まだ私の問題を理解できない場合は、New York Times iPadアプリについて考えてみてください。ページを水平方向にドラッグすることができます。記事の説明に触れて、記事全体のビューに移動することができます。しかし、記事の説明の中で縦にドラッグすると何も起こりません。これを達成する方法は?

答えて

1

は、例えば異なるイベントを使用してください:

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

UIControlEventTouchUpInsideは、最も一般的に、この場合に使用されています。ユーザーがボタンの内側にタッチダウンし、同じボタンに触れるまで、およびドラッグを無視したときにのみ、クリックイベントを登録

1

使用forControlEvents:UIControlEventTouchUpInside

+0

これははるかに良く機能します。ありがとう! – Yiyi