2012-03-06 46 views
0

我有我的UISwitch,從xib加載。它的x位置大於零,它在iOS 5模擬器上看起來不錯。但是當我嘗試在4.3模擬器上運行它時,它看起來像UISwitch的位置等於零用戶界面看起來不同iOS 5和iOS 4.3

我的問題在哪裏?

回答

6

以及他們在外觀上的改變位置的問題,UISwitch ES安裝iOS 4和5之間基於快速截圖對比縮水,他們大約是94pt寬,現在只有76pt。所以,如果你有一個開關,比如右對齊每個自動調整掩碼,那麼它將進一步延伸到4中的左側,而不是5中。

很遺憾,除了設計94pt小部件之外,你可以做的很少並接受5以下的額外空白空間。因爲界面生成器將所有東西放置在精確的像素位置,而不是應用佈局邏輯,所以很可能您必須執行一些手動的程序化調整。

+0

我已將所有UISwitches設置爲固定頂部並保留在xib中,但在iOS 4下它們延伸至左側並覆蓋標籤。我究竟做錯了什麼? – jowie 2012-05-21 14:58:53

+0

如果它們是固定的,那麼我猜這是加載NIB的機制的一種情況,它計算適合iOS 5尺寸的適當幀(基於NIB中的信息),將其設置爲'UISwitch's,以及iOS 4中的開關在該框架上進行某種驗證,導致它們調整寬度,但不確定如何處理原點。 – Tommy 2012-05-22 16:33:04

1

如果iOS 5中是可以調整基於iOS版本

 BOOL isIOS5 = [[[UIDevice currentDevice] systemVersion] intValue] >= 5; 
+0

據我所知,在xib中沒有辦法做同樣的事情嗎? – earsonheart 2012-03-06 18:53:29

+0

nope,你應該在課堂上做 – holographix 2012-03-06 19:06:42

+0

查詢連接到你的交換機插座的物體的大小並根據它進行調整,而不是(隱式)對4和5的大小進行硬編碼可能會更聰明。完全不執行'systemVersion'檢查,例如'someSwitch.frame.size.width' – Tommy 2012-03-06 19:09:20