2011-02-08 60 views
0

我有一個可以在寬度上動態增長的UIView。該視圖還包含位於其邊界內的子視圖。在左邊增加UIView的幀大小

默認行爲似乎是當視圖的框架沿x軸增長時,增加frame.size.width,它總是增長在右邊緣,保持子視圖固定,就好像存在固定的左邊距。但是,當我想擴展左邊的視圖時,由於這種行爲,這不起作用。在這種情況下,我希望它以鏡像的方式運行,就好像有一個固定的右邊距。我當然可以「手動」地移動所有的子視圖,所以看起來就是這樣,但這看起來很尷尬,因爲可能有很多。

所以我想這個問題真的是如果有一種方法來移動視圖邊界相對於它的子視圖?也許autoresizingMask的方式來做到這一點?

謝謝。

回答

1

也許你應該看看一個UIView子類的autoresizingMask屬性:-)

舉例來說,如果你有一個UILabel叫labelVideoTitle,您可以設置這樣的面具:

[ labelVideoTitle setAutoresizingMask:UIViewAutoresizingFlexibleWidth ]; 

你可以一次添加2個面具一次,如:

[ labelVideoTitle setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ]; 

祝你好運!

編輯:要增加左邊的父視圖框大小,您也可以將它的X位置改爲左邊以給出想要的印象^^例如,如果您向寬度添加10磅,請嘗試修改X起源-10點:-)

+0

當您將x origin更改爲-Xpt時,添加的子視圖會將其原始位置保留在其父級中。如果一個子視圖最初距離左邊緣10點,它仍然是距離左邊緣10點。 – Oskar 2011-02-08 19:58:01

+0

你嘗試過面膜嗎? – Vinzius 2011-02-09 09:55:58

1

在界面構建器中,您可以在CMD-3(小標尺圖標)中查看大小檢查器視圖中的每個元素在父視圖調整大小時應該執行的操作:邊界(頂部,左側,右側,底部),當父視圖調整大小時,給定元素應該「堅持」。您還可以指示給定的元素是否應該自己調整大小(寬度或高度)或保持相同的大小。在引擎蓋下面,這爲您正在編輯的UIView元素設置了自動調整大小的掩碼,但是爲了讓元素堅持特定的邊框,Interface Builder是最好的選擇。

IB尺寸檢查器也有一個整潔的小動畫,在給定設置在左側的情況下,可以在調整大小時顯示對假設元素(小紅場)的影響。