簡體   English   中英

動畫時UIView不移動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM