UIScrollView からタッチ位置を取得する必要があります。しかし、スクロールビューのサブクラスを作成すると:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSArray *touchesArray = [touches allObjects];
UITouch *touch = (UITouch *)[touchesArray objectAtIndex:0];
CGPoint point = [touch locationInView:self];
self.position = point;}
関数touchesBegan
は常に呼び出されるわけではありません。すばやくスワイプするtouchesBegan
と、呼び出されることはありませんが、scrollViewDidScroll
代わりに直接呼び出されます。
UIGesture (UITapGestureRecognizer, ... )
ユーザーがタップやスワイプしないので使えません。
UIScrollView から位置を取得する他の方法はありますか?
編集 :
ありがとうThXou:https://stackoverflow.com/a/15763450/1752843
UIScrollView サブクラス:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
self.position = point;
return self;
}