2011-06-30 36 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