簡體   English   中英

如何防止UIView動畫進行子視圖自動調整大小操作?

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

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