2013-12-09 26 views
3

我想知道爲什麼您無法更改objective-c中某些對象的XY位置?例如...我有一個工具欄,下面的代碼,但它只會工作,如果我把它放在一個UIView,然後設置相同的座標...任何人都可以解釋爲什麼?更改UI元素/對象的XY位置

不起作用:

UIToolbar *commentstoolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 400, 320, 44)]; 
[self.view addSubview:commentstoolbar]; 

不工作:

UIToolbar *commentstoolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
UIView *toolbarView = [[UIView alloc] initWithFrame:CGRectMake(0, 400, 320, 44)]; 

[toolbarView addSubview:commentstoolbar]; 
[self.view addSubview:toolbarView]; 
+0

這似乎是不尋常的行爲......是否有任何其他代碼可能會影響到這一點? –

+0

我用這個代碼打開了一個全新的項目,並獲得了相同的結果。考慮到沒有人爲我提供任何可能的解決方案,我必須做錯事。 – rckehoe

+0

假設你在ViewController中,你是在-init -viewDidLoad還是-viewDidAppear上執行此操作:?您是否正在使用此視圖控制器的界面構建器? – cescofry

回答

1

的UIToolbar符合UIBarPositioning協議,該協議規定:

的UIBarPositioning協議定義的方法是酒吧可以在iOS設備上定位 。 酒吧可以位於其封閉視圖的頂部,其封閉視圖的頂部或位於其封閉視圖的頂部以及屏幕的頂部的兩個位置均爲 。

因此,解決在任何地方放置工具欄的方法都是將它放在視圖中,就像您在做的一樣。