簡體   English   中英

ios如果方向更改,則處理parentViews

[英]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 ,所以它可能是這種情況)。

更籠統地說,考慮到有幾種處理輪換的方法。 他們有不同的職責:

  1. shouldAutorotateToInterfaceOrientation :它只是說支持哪種方向;

  2. willAnimateRotationToInterfaceOrientation:duration :當您希望這些更改在旋轉發生時生效時,可以在這里修改幀,大小,位置等。

  3. willRotateToInterfaceOrientation:duration:在這里做任何必要的事情:停止動畫,計時器,實時更新等;

  4. didRotateFromInterfaceOrientation:與3相反。

當然,這只是一個准則。 你可以

答案取決於您告訴界面部分放置自己的位置。 就像在代碼中或在nib編輯器中為它們提供所有正確的自動調整大小的掩碼值一樣簡單。 或者,您可能必須實現didRotateFromInterfaceOrientation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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