テーブルセルに2つのUIButtonがあり、スクロール時に不便に押してしまいます。どうすればこれを防ぐことができますか?
ボタンが押された直後ではなく、ユーザーがプレスを離したときにのみボタンが押されるように設定できるプロパティまたは送信済みイベントはありますか?
さまざまなタッチイベント(Touch UpInsideとTouchDown)を試してみましたが、どちらもこの問題を解決していないようです。
テーブルセルに2つのUIButtonがあり、スクロール時に不便に押してしまいます。どうすればこれを防ぐことができますか?
ボタンが押された直後ではなく、ユーザーがプレスを離したときにのみボタンが押されるように設定できるプロパティまたは送信済みイベントはありますか?
さまざまなタッチイベント(Touch UpInsideとTouchDown)を試してみましたが、どちらもこの問題を解決していないようです。
テーブルビューのスクロール デリゲート コールバックをリッスンし、スクロールされているボタンをオフにすることができます
- (void)scrollViewWillBeginDragging:(UIScrollView *)activeScrollView {
//I assume the buttons are within your cells so you will have to enable them within your cells so you will probably have to handle this by sending a custom message to your cells or accessing them with properties.
[yourButton setEnabled: NO];
}
そして聞く
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
// do the same to enable them back
[yourButton setEnabled: YES];
}
インターフェイス ビルダーで、ボタンのタグ値を 10 より大きい数値 (または何らかの値) に変更します。UIScrollView をサブクラス化し、オーバーライドします。
-(BOOL) touchesShouldCancelInContentView:(UIView *)view {
if(view.tag>10) {
NSLog(@"should A");
return YES;
} else return NO;
}
scrollView のプロパティcanCancelContentTouches
を YES にdelaysContentTouches
設定し、NOに設定する必要があります