2013-02-13 72 views
1

我的應用程序(目標iOS 5+,使用ARC和故事板,用於App Store)使用一些旋轉變換。有一個錯誤,即通話狀態欄(例如,如果有持續的電話或麥克風錄音)導致視圖超出轉換描述的範圍。爲了診斷這個問題,我編寫了一個簡單的test app *,它與視圖的變換一起玩。通話狀態欄如何影響我的CGAffineTransform視圖?

最初(轉載於模擬器5.0和6.1,以及硬件6.1),它看起來像

enter image description here

20度旋轉後:

enter image description here

還行!但是,奇怪的事情發生在我切換通話中狀態欄(命令-T):

enter image description here

好吧,那也許是因爲如果我關掉通話中狀態欄

它會恢復enter image description here

災難!讓我們嘗試重置視圖的轉換爲CGAffineTransformIdentity

enter image description here

哦,你有什麼我得到了自己成?

無論如何,我是CGAffineTransforms和Quartz 2D的新手,所以如果有人能告訴我爲什麼會發生這種情況,我將不勝感激。該代碼是available on Github *如果你想捅。

*請注意,代碼已更新爲解決方案。

回答

1

發生這種情況是因爲切換通話狀態欄會更改視圖框架(如果設置爲自動調整子視圖),會相應地自動調整子視圖的大小。如果轉換的視圖具有任何靈活的邊距,則可能會如上面的屏幕截圖所示偏斜。爲了使它不歪斜,打開所有四個支柱。