私の問題は、x 軸方向にのみドラッグできるように設定されている uiimageview を画面全体にドラッグすると発生します。コードの種類は機能します。uiimageview は問題なく動いており、x 軸のみに制限されています。これはまさに本来あるべきことです。しかし、uiimageview のフレームの外側にドラッグし始めると、指の横に沿って動きが止まります。
これは明らかに、CGRectContainsPoint というメソッドと関係があります。ユーザーが指を置いたときにのみuiimageviewを移動させたいので、私のコードでは非常に必要です。
このメソッド CGRectContainsPoint を使用しなかった場合、ユーザーの指が画像に触れていなくても、画像は移動します。これを回避する作業は大歓迎です。
ここに私のコードがあります:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Touches Moved is running");
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if (CGRectContainsPoint(UIImageView, location) && UIImageView >= 40)
{
NSLog(@"Contains Point UIImageView Center!");
CGPoint xLocation = CGPointMake(location.x,UIImageView);
UIImageView = xLocation;
//here it comes.. big block of code//
if (location.x <= 40) {
NSLog(@"Start Dragging Point");
CGPoint newLocation = CGPointMake(40
, 402);
UIImageView = newLocation;
}
else if(location.x >= 273) {
NSLog(@"End Dragging Point");
CGPoint newLocation = CGPointMake(273
, 402);
UIImageView = newLocation;
}
}