Мне нужно получить координату от прикосновения к виду.Точка зрения, которой я занимаюсь, - это UITextview.Иерархия представления: UIViewController -> UITextview.Я думаю, что я могу использовать locationInView
метод, чтобы получить эту координату.Я знаю, что в UITextview есть несколько методов делегата, поэтому я думаю, что мне нужно использовать textViewShouldBeginEditing
метод делегата для вызова locatioInView.
Это мой фрагмент кода
-(BOOL)textViewShouldBeginEditing:(UITextView *)textView {
NSSet *touches;
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:textView];
NSLog(@"currentTouchPosition: x=%f, y=%f", currentTouchPosition.x, currentTouchPosition.y);
return YES;
}
Моя проблема в том,currentTouchPosition всегда имеет значение 0 в x и y.Я не знаю, что не так с этим кодом.Может кто-нибудь сказать мне ???
спасибо
ОБНОВЛЕНИЕ Наконец-то я решил эту проблему.Я использую UITapGestureRecognizer в viewDidLoad, а затем получаю местоположение крана, используя тот же метод, который я использовал в textViewShouldBeginEditing.Это код, который я сделал:
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
tap.delegate=self;
[self.textView addGestureRecognizer:tap];
tap.numberOfTapsRequired = 1;
[tap release];
}
и это handleTapFrom:
- (void)handleTapFrom:(UITapGestureRecognizer *)recognizer {
locationTap = [recognizer locationInView:self.textView];
}