ビューに触れて座標位置を取得する必要があります。私が触れるビューは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 の x と y の値が常に 0 であることです。そのコードの何が問題なのかわかりません。誰か教えてくれませんか???
ありがとうございました
UPDATE 最後に、私はこの問題を解決しました。私はviewDidLoadでUITapGestureRecognizerを使用してから、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];
}