[英]UIView not moving when animating
我試圖將一個簡單的uiview向上移動30點。 但是,無論我做什么,我都無法移動它。
我正在iOS 7.1中進行開發
現在,我終於發現我已經啟用了自動布局,但是此視圖沒有任何約束。 這是從對象庫拖放到視圖控制器中的簡單操作。 我已經嘗試了各種方法來使其移動。 我可以為諸如Alpha之類的屬性以及您擁有的屬性設置動畫,但是我一生都無法移動它。
以下是我嘗試過的方法:
[UIView animateWithDuration:1.0f animations:^{
CGREct oldFrame = self.viewWantingToMove.frame;
self.viewWantingToMove.frame = CGRectMake(self.viewWantingToMove.frame.origin.x, self.viewWantingToMove.origin.y, self.viewWantingToMove.size.width, self.viewWantingToMove.width.height);
});
這不行
[UIView animateWithDuration:1.0f animation:^{
self.viewWantingToMove.center = CGPoint(self.viewWantingToMove.frame.origin.x, self.viewWantingToMove.frame.origin.y-30
}];
再次nadda ...
在我發現它可能具有自動布局功能之后,請記住您因為必須使用它而無法將其關閉,然后嘗試了一下。
[self.viewWantingToMove layoutIfNeeded];
[UIView animateWithDuration:1.0f animation:^{
self.viewWantingToMove.center = CGPoint(self.viewWantingToMove.frame.origin.x, self.viewWantingToMove.frame.origin.y-30
[self.viewWantingToMove layoutIfNeeded];
}];
這給了我動畫……但是倒退。 它從30點開始,然后移回其原始位置。 誰能幫我這個? 它到達了您想要咬顯示器的那一刻。
使用自動版式時,不應設置任何框架。 要移動視圖或調整視圖大小,應改為修改約束。 您沒有添加任何約束的事實確實意味着它們不存在。 系統會為您添加默認約束。 您應該設置所需的約束,以便知道它們是什么(嘗試在視圖頂部,左側,以及在高度和寬度上嘗試)。 在視圖頂部的約束處創建一個IBOutlet(將其命名為topCon),然后可以在代碼中修改該對象以對其進行動畫處理,
[UIView animateWithDuration:1.0f animation:^{
self.topCon.constant -= 30;
[self.view layoutIfNeeded];
}];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.