我在視圖控制器中有幾個視圖,當檢測到向上滑動時向上移動,然後在檢測到向下滑動時向下移動。我通過使用CGRectOffset調整y原點來迫使視圖移動。我現在已經對IB的視圖應用了約束條件,我不確定最佳的方式來移動視圖,以便它們在iPhone 5,6和6+上處於正確的位置。帶約束的移動視圖
目前我在做這樣的事情:
[self.view layoutIfNeeded];
self.panFrameVerticalConstraint.constant = self.panFrameVerticalConstraint.constant +338;
[UIView animateWithDuration:5
animations:^{
[self.view layoutIfNeeded];
}];
是更好地改變使用比例常數?所以對於上面的約束,而不是使用338,是否會更好地做到這一點:
self.panFrameVerticalConstraint.constant = self.panFrameVerticalConstraint.constant + (self.panView.frame.size.height/1.680);
//self.panView.frame.size.height = 568
//(568/1.680) = 338
拿上這個一看 - http://stackoverflow.com/questions/26667006/uiview-addsubview-auto-layout -not-working/26668575#26668575 – Kampai 2014-12-11 10:09:05
@Brosef,請問您是如何實施滑動上/下手勢來移動您的視圖?我正在嘗試做類似的事情,但不知道從哪裏開始。謝謝 – Pangu 2014-12-22 09:09:02
@Pangu我幾乎遵循了下面答案中的步驟。我創建了一個'IBOutlet'' NSLayoutConstraint'屬性,並將它連接到我想在界面構建器中調整的約束。然後當我需要移動我的視圖時,我改變了我的常量,像這樣'self.panFrameVerticalConstraint.constant = - (self.panedView.frame.size.height/1.68);'。在改變常量之前,我調用了'layoutIfNeeded'。在改變常量後,我再次調用'animateWithDuration'並在塊中再次調用'layoutIfNeeded',就像下面的答案一樣。 – Brosef 2014-12-22 21:10:47