Мне было интересно, как передать касание UIView в UITextView. Это мой код:
- (void)foundTap:(UITapGestureRecognizer *)recognizer {
label.text = @"Touch detected";
[self.view bringSubviewToFront:aTextView];
[aTextView touchesBegan:touches withEvent:event];
}
Теперь это, очевидно, не работает, поскольку касания и события не определены. Но как мне их определить? Я не могу объявить касания как 1 (не будет работать). Я мог бы инициализировать это так:
UITouch *touches =[touches anyObject];
Но опять же, прикосновения все еще не объявлены. И я понятия не имею, как объявить это событие. Это обычно легко, если вы используете метод - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}
, но я хочу передать касание, а не касания. Любая помощь будет принята с благодарностью.
Edit:
Я переписал метод, но все еще не могу передать сигнал UITextView. Теперь мне нужно дважды нажать, чтобы отредактировать его, то есть первое нажатие для вывода aTextView авансом, а второе нажатие затем отредактирует UITextView (так как он находится впереди и, таким образом, получает все касания и т.д.):
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesMoved:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x); // will always be positive
CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y); // will always be positive
if (deltaY == 0 && deltaX == 0) {
label.text = @"Touch"; [self performSelector:@selector(eraseText) withObject:nil afterDelay:2];
[self.view bringSubviewToFront:aTextView];
[self.view bringSubviewToFront:doneEdit];
[aTextView touchesBegan:touches withEvent:event];
}
}