Я играл с этим кодом, но не могу понять это правильно.UIScrollView с UIButton и UITapGestureRecognizer
Текущее поведение: я могу свободно перемещаться по UIScrollView даже при нажатии на кнопки. Когда я нажимаю на то, что не является кнопкой, он вызывает метод (например, я хочу его), в результате UITapGestureRecognizer. Тем не менее, я должен удерживать кнопку в течение нескольких секунд, а затем дотронуться до нее, чтобы запустить UIControlEventTouchUpInside кнопки.
Что я хочу: Точно то же самое, но чтобы легко касаться UIButton, как я могу, если я выключу UITapGestureRecognizer на вид, на котором он сидит.
Вот мой код:
- (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];
}
Это, в сочетании с моим кодом выше, теперь означает, что любые нажатия на UIButton приводят к прямому нажатию на него. Я бы хотел, чтобы это работало так же, как плагин для iPhone, где у вас есть uibuttons на uiscrollview, но касаться их, поскольку вы прокручиваете, не имеет прямого эффекта. – Andrew