2017-07-08 77 views
0


我做了一個可拖動的UIView,它可以在屏幕上的任何位置移動。我將它設置自動隱藏3秒鐘,這個代碼後它的1/2部分:
如何知道UIView在屏幕左側或右側的當前位置?

-(void)hidePart { 
    if (self.frame.origin.x > 0) { 
     [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionTransitionNone animations:^{ 
     self.frame = CGRectMake(0 - self.frame.origin.x - self.frame.size.width/3, self.frame.origin.y, self.frame.size.width, self.frame.size.height); 
     } completion:^(BOOL finished) { 
     }]; 
    } 
} 

這是正常工作,如果我把附近的UIView屏幕的左邊緣。但是如果我拖動並放在靠近右邊的地方,3秒後它會跑到左邊並離開屏幕。我知道這是因爲我在3秒延遲後設置它的框架等於:(當前X框架),在這種情況下當前X很大。

我想知道如何讓它變得更好?我的意思是,如果這個UIView靠近左邊緣,它會向左邊靠近,如果它靠近右邊緣,它會偏向右邊?

回答

1

首先,您應該認識到可拖動視圖位於視圖的哪個部分左側或右側。

CGFloat pointLeft = CGRectGetMidX(self.frame); 
BOOL isLeft = CGRectGetMidX(self.frame) < kScreenWidth/2; 

然後,動畫在它方面的視圖到左邊或右邊。 您已完成左側。

+0

謝謝,這是工作。 –

相關問題