0

ビュー内にサブビュー (赤いバー) が配置されています。親ビュー内のパン領域を制限し、絶対に水平または垂直のみに制限したい。もちろん、親ビューの外ではありません。

パン イベントを処理するコードをいくつか試してみましたが、赤いバーをドラッグできる場合があります。なにか提案を?

-(void)handleMoveLineView:(UIPanGestureRecognizer *)recognizer{

CGPoint sPoint= [recognizer locationInView:self.groundView];

CGPoint newCenter = [recognizer translationInView:self.groundView];
NSLog(@"X0 = %f, Y0 = %f", newCenter.x, newCenter.y);
if([recognizer state] == UIGestureRecognizerStateBegan) {
    beginX = recognizer.view.center.x;
    beginY = recognizer.view.center.y;
}

for (UIView *view in viewArrayGroundView) {
    if (CGRectContainsPoint(view.frame, sPoint)) {
        //Limit not out side parent view
        if (beginX + newCenter.x != view.frame.size.width /2) {
            newCenter = CGPointMake(view.frame.size.width /2, beginY + newCenter.y);
        }
        //Limit top - since the redbar height is 3
        else if((beginY + newCenter.y < view.frame.origin.y + 3)){
            newCenter.y = view.frame.origin.y + 3;
        }
        //Limit bottom
        else if((beginY + newCenter.y > view.frame.size.height - 3)){
            newCenter.y = view.frame.origin.y - 3;
        }

    }
}       


[recognizer.view setCenter:newCenter];
NSLog(@"X = %f, Y = %f", newCenter.x, newCenter.y);
}

ここに画像の説明を入力

4

0 に答える 0