星期六, 12月 01, 2012

Xcode 4.5 中 UIDatePicker 在重新開啟專案後寬度莫名其妙變成 480

自從 Xcode 4.5 預設啟用 autolayout 功能後, 許多地方若是沒注意, 就會出現靈異現象。今天我自己遇到的狀況就是在準備送印一本日文翻譯書之前, 整理要附贈的範例光碟, 發現有個介紹 UIDatePicker 的範例開啟後, UIDatePicker 的寬度就莫名其妙變成 480, 超出了 iPhone 預設的 320。

於是我做了個簡單的實驗, 建立一個 Single Page 樣板的專案, 在 Storyboard 中放置一個 UIDatePicker, 如下:
這時即使甚麼事情都不做, 立刻關閉專案, 之後再重新開啟專案, 就會看到 storyboard 的內容變成這樣:
你可以看到 UIDatePicker 突然變寬了, 如果從尺寸檢視面板查看, 會發現寬度變成了 480。不過如果你執行這個程式, 看起來又很正常:
如果一開始建好專案時, 就先把 autolayout 功能取消, 就不會有這樣的問題。目前我也還不知道到底是哪裡出錯?即使啟用 autolayout, 我看了 UIDatePicker 的 constrain 也都沒有甚麼問題, 使用 Xcode 4.5.1、4.5.2 (以及朋友在 4.6) 上都會有一樣的情況, 若您知道問題的癥結, 也請告訴我, 謝謝。

PS:之前我也遇到過 UIView 動畫在 autolayout 啟用時, 使用 center 屬性變更畫面上元件的位置會跑到錯的位置上, 顯然 autolayout 真是值得大家好好研究一番啊!

沒有留言: