我在view1上有一個按鈕,而且我想將它移動到view2,但是使用頂部的動畫。我的view1位於屏幕的上半部分,view2位於屏幕的下半部分。因此,超級視圖如您所見可以改變。我嘗試了多種方法,但按鈕只是從左或右出現,而不是從原點出現。任何幫助表示讚賞。如何在超級視圖不同的情況下在iphone中爲視圖的框架更改設置動畫...?
1
A
回答
2
我已經使用以下代碼來實現這個非常的結果:
CGRect tabFrame = tab.frame;
CGRect viewFrame = [mainWindow convertRect:tabFrame toView:currentView];
tab.frame = viewFrame;
[tab removeFromSuperview];
[currentView addSubview:tab];
該代碼轉換tab
的從mainWindow
幀分成currentView
。除了this錯誤之外,此功能完美無缺。如果你沒有遇到這個問題,或者找出解決辦法,我會非常感激。
所有你需要做的從那一點是應用你的正常動畫。
1
通過將clipsToBounds
設置爲NO
,使超級視圖不剪輯其內容。
然後,您爲按鈕的框架設置動畫,當動畫完成後,將其從view1中移除並將其添加到view2。
[UIView animateWithDuration:0.2f
animations:^{
button.frame = newFrame;
}
completion:^(BOOL finished){
CGRect rect = [view1 convertRect:button.frame toView:view2];
[button removeFromSuperview];
[button setFrame:rect];
[view2 addSubView:button];
}];
+0
看到我們的反應非常相似,在動畫之後移動視圖與BEFORE相比有什麼優勢? –
+0
我不這麼認爲。這對我來說似乎是合乎邏輯的。 – DrummerB
相關問題
- 1. 在iPhone和Android中爲視圖更改設置動畫
- 2. 在UIView中獲取不是超級視圖的視圖框架
- 3. 如何在不影響父視圖的情況下設置子視圖的Layoutparams?
- 4. 視圖不會在CPU變爲100%的情況下更改
- 5. 如何在主視圖中設置一個視圖的框架?
- 6. 子視圖顯示在不同的地方在兩個視圖與相同的框架和超級視圖
- 7. 如何在沒有UINavigationController的情況下動畫detailViewController視圖?
- 8. 在超級視圖中設置不同寬度水平的子視圖
- 9. iOS:在不調用佈局的情況下動畫子視圖子視圖
- 10. 如何在不移動其他視圖的情況下添加滾動視圖?
- 11. 如何在動畫後從超級視圖中移除圖像
- 12. 在不影響限制的情況下設置繪圖(座標軸)視圖「框」
- 13. 有角度,在不破壞原始視圖的情況下更改視圖
- 14. 如何在沒有任何動畫的情況下更改swift中的圖像視圖?
- 15. 如何在動畫後更改視圖?
- 16. 如何在不改變位置的情況下旋轉圖像視圖
- 17. 如何在不刷新所有視圖的情況下更新視圖?
- 18. Angular - 在不更改網址的情況下加載視圖
- 19. 在不刪除MKAnnotation的情況下更改MKAnnotation視圖
- 20. 如何在IB中設置UIView子視圖大於其父級超級視圖?
- 21. 爲圖像視圖設置的動畫
- 22. 更改UILabel的超級視圖動畫時的文本
- 23. 如何在不刷新頁面的情況下反映視圖中的更改?
- 24. 更改視圖爲不同的設備
- 25. 不能動畫子視圖的框架
- 26. UIscrollview框架更改爲超視圖框架?
- 27. 如何設置子視圖的框架
- 28. 如何在Aurelia中爲路由器視圖視圖的變化設置動畫?
- 29. 在載入視圖中創建視圖並設置其框架,但框架自動更改
- 30. 如何在容器視圖中爲父視圖控制器中的約束更改設置動畫? (Swift 4)
非常感謝它的工作。 –