2012-02-08 9 views
0

私はアプリケーションにドラッグ可能なUIViewを実装しています。コードはうまくいきましたが、UIViewを移動できる制限区域を設定したいと思います。最小値と最大値をどのように設定するのですか?

マイコード:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 

    if([touch view] == camview) 
    { 
     CGPoint location = [touch locationInView:self.view; 
     startX = camview.center.x; 
     startY= location.y - camview.center.y;   
    } 
} 


- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [[event allTouches] anyObject]; 

    if([touch view] == camview) 
    { 
     CGPoint location = [touch locationInView:self.view]; 
     location.y =location.y - startY; 
     location.x = startX; 
     camview.center = location; 
    } 
} 

だから私はUIViewのをドラッグすることができ、最小値と最大yの値を設定することができますか?

ありがとうございます!

答えて

1

ビューフレームが終わって行くか、あなたが次のことを行うことができ、特定のyの値の下にないことを確認することに興味がある場合は、

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 

    CGFloat minY, maxY; //The position in your self.view you are interested in 

    UITouch *touch = [[event allTouches] anyObject]; 

    if([touch view] == camview) 
    { 
     CGPoint location = [touch locationInView:self.view]; 
     location.y = location.y - startY; 
     location.y = MIN(location.y,maxY); //Always <= maxY 
     location.y = MAX(location.y,minY); //Always >= minY 
     location.x = startX; 
     camview.center = location; 
    } 
} 
+0

はありがとうございました(!: – Grace

関連する問題