2013-01-24 132 views
2

我的主屏幕上有2個容器視圖控制器,其中一個充當頂部的全局工具欄。這在大多數情況下都很棒,但我需要在屏幕外創建動畫,以便爲用戶提供更多空間來在屏幕上查看大量信息。這可能嗎?我一直在看文檔,但我不確定是否需要使用轉換動畫或更改框架/邊界。任何建議將不勝感激。動畫容器視圖控制器

+0

Blamo! http://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/clm/UIView/animateWithDuration:delay:options:animations:completion: – JoshRagem

回答

1

你應該能夠改變標準UIView動畫(塊或其他)中的幀/邊界。無需引用「包含」的觀點。

更新:這是一個塊動畫示例。

[UIView animateWithDuration:1.0f 
       animations:^{ 
        view1.frame = CGRectMake(blah...); 
       } 
       completion:^(BOOL finished){ 
        // do something here if you wish. 
       }]; 
+0

經常將容器視圖放在父視圖上很有用,然後將子控制器的視圖放在該視圖上。如果是這樣,您需要確保設置了自動調整掩碼或自動佈局約束,以便容器視圖(示例中的「視圖1」)發生更改,同時子視圖也會更改。但是有了這樣一個警告,我同意你的答案。 – Rob

+0

在我的回答中,我沒有提到這一點(因爲它與問題沒有特別的關係),但過去的情況是,蘋果強烈建議單個'UIViewController'子類控制整個屏幕。他們特別建議針對這種情況。但我90%肯定現在有一些UIKit VC子類直接違反了這個準則(無論如何,這肯定存在於iPad上)。 – livingtech

+0

這是蘋果在iOS 5之前的建議,但隨着定製容器的推出,他們不再採取這種立場。他們只堅持(a)如果你有多個控制器用於你正確使用[所有自定義容器方法]的屏幕多個部分(http://developer.apple.com/library/ios/documentation/uikit/reference /UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81)和(b)他們建議你只使用自定義容器,當標準容器不足時。 – Rob

相關問題