UIScrollView 内に画像があり、ユーザーが指をドラッグするとテキストを描画するコードがあります。ユーザーが画面に触れているときに制御できるようにしたいのですが、
a) ユーザーは指を使って描画する必要があります OR
b) ユーザーは指でスクロール ビューを移動する必要があります。
ユーザーが何をしているかを追跡するブール値があります。そして、私はタッチメソッドを持っています:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
if(draw == false) {
printf("calling super");
[scrollView touchesBegan:touches withEvent:event];
}
else
[myPath moveToPoint:[mytouch locationInView:self]];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
if(draw == false)
[scrollView touchesMoved:touches withEvent:event];
else {
[myPath addLineToPoint:[mytouch locationInView:self]];
[self setNeedsDisplay];
}
なぜこれが機能しないのですか?基本的に、描画していない場合は、スクロール ビューの touchesBegan と touchesMoved を呼び出します。描画する場合は、myPath を使用して描画します。
ただし、draw が false の場合、スクロール ビューは本来あるべきように移動したりズームインしたりしません。