[英]How to prevent UIView animation for subview auto-resize operations?
我用
[UIView beginAnimations:nil context:NULL];
為UIViewController
的框架設置動畫。 該視圖控制器包括一個UITableView
,並且UITableView
的單元格是自定義子視圖,該子視圖還具有自動調整大小的掩碼集。
在為父級ViewController設置動畫時,幀中的更改也會使該單元格內容產生動畫,這是預期的,但不是我想要的。 我希望這些單元格立即設置其新框架,並且我希望整個viewcontroller內容作為一個塊而不是作為獨立對象移動(動畫)。
我不能專門為內部內容設置框架,因為這不是單個viewcontroller。 有7個具有動畫效果(滑動動畫)的視圖控制器
PS:我在做自定義動畫時,沒有在尋找視圖控制器過渡的替代組件。
有沒有一種方法可以停止動畫以自動調整特定UIView或UIViewController的大小?
更新
使用transitionWithView仍會使子視圖具有自動調整大小的動畫。 堆棧跟蹤:
+[UIView(UIViewAnimationWithBlocks) transitionWithView:duration:options:animations:completion:] ()
+[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] ()
-[UIView(Geometry) _applyAutoresizingMaskWithOldSuperviewSize:] ()
-[UIView(Geometry) setFrame:] ()
好。 這是我瘋狂的想法:
1)將所有子視圖添加到數組
2)從超級視圖中刪除所有子視圖
3)創建與舊大小相同的新視圖並使她透明
4)將所有子視圖從數組添加到新視圖
5)將動畫應用於持續時間為0的新視圖(子視圖將立即調整大小)
6)根據需要將動畫應用於舊視圖
7)步驟6的動畫結束后,將子視圖移回舊視圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.