[英]ios Handling of parentViews if orientation changes
也許是一個基本問題,這是我第一個處理iPad上不同方向的應用程序。
UIView1-> UIButton->呈現UIView2
在UIView1和UIView2中,我根據方向確定包含視圖的框架和大小
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
還行吧。 但是,如果View2處於焦點位置,方向會發生變化,並且我關閉View2時,View1不會響應方向變化。 View本身的方向正確,但是不執行UIView1包含的元素的幀和大小的計算。
做到這一點的“正確”方法是什么? 我是否必須在View2中調用一個委托方法來設置View1中的新位置(如果由於內存而沒有釋放,希望在后台進行抵抗)?
MadMaxApp
你可以實現
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration;
要么
willAnimateRotationToInterfaceOrientation:duration
在您的視圖控制器中。
這些方法將在旋轉更改之前被調用,並為您提供了手動處理旋轉的可能性。 如果AUTORESIZE沒有給出正確的結果(我明白你在做你的看法有些自定義計算布局,這可能是有用的shouldAutorotateToInterfaceOrientation
,所以它可能是這種情況)。
更籠統地說,考慮到有幾種處理輪換的方法。 他們有不同的職責:
shouldAutorotateToInterfaceOrientation
:它只是說支持哪種方向;
willAnimateRotationToInterfaceOrientation:duration
:當您希望這些更改在旋轉發生時生效時,可以在這里修改幀,大小,位置等。
willRotateToInterfaceOrientation:duration:
在這里做任何必要的事情:停止動畫,計時器,實時更新等;
didRotateFromInterfaceOrientation:
與3相反。
當然,這只是一個准則。 你可以
答案取決於您告訴界面部分放置自己的位置。 就像在代碼中或在nib編輯器中為它們提供所有正確的自動調整大小的掩碼值一樣簡單。 或者,您可能必須實現didRotateFromInterfaceOrientation
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.