2011-06-30 42 views
0

我對佈局在Cocoa中的表現還是很新的。假設我有一個帶有UIActivityIndi​​cator和UILabel的UIView作爲它的子視圖。 UILabel框架和UIView一樣大,它的textAlignment設置爲居中。文本顯示「正在載入xxx ...」,其中xxx是一個可根據上下文更改的字符串。UIView佈局行爲

現在,我該如何做到這一點,以便我的UIActivityIndi​​cator始終放置在標籤的左側,無論文本獲得多長時間?記住文本是中心對齊的。

Plz讓我知道你是否需要更多的說明。

+0

將生成的字符串始終爲3個字符? –

+0

@Chance不,它是可變的。 – pixelfreak

回答

1

實現一個簡單的方法是,計算在你的UILabel文本的寬度,然後用結果來定位你的UIActivityIndi​​cator

// width & height of your activity indicator 
CGFloat wai = 20, hai = 20; 
CGSize textSize = [[label text] sizeWithFont:[label font]]; 
CGFloat w = textSize.width; 
CGFloat ax = ((WIDTH_OF_THE_DISPLAY - w)/2) - wai); 
activityIndicator.frame = CGRectMake(ax, (HEIGHT_OF_DISPLAY- hai) /2, wai, hai); 
+0

Thanks @Armentage!所以我認爲如果文字改變了,我需要重新計算和重新定位?我想知道是否有更自動的方式。 – pixelfreak

+0

在UIKit中,沒有。但是,您可以在標籤中標註「大」和中心文字,以獲得類似的效果,至少不會製作具有超大幀的效果​​。 –

+0

@Yann,我沒有得到你。這將如何使指標堅持在文本的左側? – pixelfreak