UIScrollViewでタッチイベントの実装で困った事
UIScrollViewでタッチイベントを取得
UIScrollViewにUIViewをのせて、タッチイベントを取得する際はUIViewにて以下を実装すれば良い
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesCanceled:(NSSet *)touches withEvent:(UIEvent *)event
これらを実装後、タッチした座標を取得した所、なんと下にスクローした際スクロールのイベントとタッチイベントが重複してしまい座標がとれない。とう自体が起きました。
元々自分は横軸の座標しか使わなかったため、UIScrollViewのスクロールを横の座標を取得している際は止めればおっけーでした。
UIScrollViewはシングルトン化しておいて、(objective-cでシングルトンパターンを試してみた。)
こんな感じに。scroll = [ScrollViewContoller sharedManager];
そして、touchesMoved関数内に
scroll.scrollEnabled = NO;
といれればタッチしたまま動いた際はスクロールしません。
タッチが終わったときはtouchesEnded関数内に
scroll.scrollEnabled = YES;
と入れれば戻ります。