Мне было интересно, как передать нажатие на 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 {}
, но я хочу передать касание, а не касания. Любая помощь будет очень высоко ценится.
Редактировать:
Я переписал метод, но до сих пор не могу передать кран в 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];
}
}