私はこのコードで遊んでいますが、正しく理解できません。
現在の動作:ボタンをタップしても、UIScrollViewを自由にスクロールできます。ボタンではないものをタップすると、UITapGestureRecognizerの結果として、メソッドが呼び出されます(必要に応じて)。ただし、ボタンを数秒間押し続けてからタッチアップして、ボタンのUIControlEventTouchUpInsideをトリガーする必要があります。
私がしたいこと:まったく同じですが、UIButtonが置かれているビューでUITapGestureRecognizerをオフにした場合のように、UIButtonに簡単に触れることができるようにします。
これが私のコードです:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//...
[cell.xButton addTarget:self action:@selector(xButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.delaysContentTouches = YES;
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
[self addGestureRecognizer:tapGestureRecognizer];
tapGestureRecognizer.delegate = self;
}
}
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer
{
[self.header removeKeyboard];
}