iPhone界面生成器怎麼不讓我設置頂級UIView的X,Y座標? (含義,其直接父對象是UIViewController的視圖。)「視圖大小」選項卡上的X和Y框呈灰色顯示。我可以在運行時更改代碼中的X,Y值,爲什麼不在Interface Builder中?iPhone Interface Builder如何讓我無法設置頂級UIView的X,Y座標?
謝謝。
iPhone界面生成器怎麼不讓我設置頂級UIView的X,Y座標? (含義,其直接父對象是UIViewController的視圖。)「視圖大小」選項卡上的X和Y框呈灰色顯示。我可以在運行時更改代碼中的X,Y值,爲什麼不在Interface Builder中?iPhone Interface Builder如何讓我無法設置頂級UIView的X,Y座標?
謝謝。
由於UIViewController
擁有的視圖會填充其父項的可用空間。它的父代將是UIWindow
或由UINavigationController
或UITabBarController
之類的東西控制的視圖。它將爲您定位視圖。如果要控制視圖的位置,請將其設置爲由您的UIViewController
控制的視圖的子視圖。
我同意這是IB中缺少的功能。對於基本用法,即爲標準視圖控制器中的位置創建單個頂級視圖,當然,不需要設置視圖原點。然而,NIB被設計爲能夠在任意對象圖中保存任意數量的頂級視圖。由於這允許您以任何您認爲合適的方式使用這些視圖,包括以編程方式將它們嵌入到任何其他視圖中,因此在IB中鎖定這些控件是不必要的約束。在一個相關的但有趣的筆記中,如果您將定位視圖移動到頂層,IB本身會記住它的相對位置以用於顯示目的。但是,這個位置在NIB加載後不可用。
在Xcode 4.3.2中,您可以在屬性檢查器中選擇size-> freeform。
xib中的頂層視圖一般不允許指定X,Y。我能想到的最好的理由是因爲他們沒有父母,所以你甚至試圖把它放在裏面? – 2008-12-13 23:24:25