我用重新計算幀這個方法對我的標籤:的UILabel適應問題
- (void)fitElements {
CGFloat currentX = 0.0;
CGFloat currentY = 0.0;
for (UIView *view in elements) {
CGRect rect = view.frame;
rect.origin.x = currentX;
rect.origin.y = currentY;
currentX = rect.origin.x + rect.size.width + 5;
view.frame = rect;
if (currentX >= 420) {
currentX = 0.0;
currentY += rect.size.height + 5;
}
}
}
如果我的標籤跨越超過420我我的對象移動到下一行的邊界。
- (void)createElements {
NSInteger tag = 0;
for (NSString *str in words) {
UILabel *label = [[UILabel alloc] init];
[self addGesture:label];
[label setTextColor:[UIColor blueColor]];
label.text = str;
[label setAlpha:0.8];
[label sizeToFit];
[elements addObject:label];
}
}
這是它的外觀,如果我創建對象如上(使用[label sizeToFit];
)
我們可以看到我的所有的標籤出去邊境
,但如果我使用標籤與硬編碼框架我得到這個:
這是我想要的,但在這種情況下,我有靜態寬度的對象。
這是我用硬編碼框架的方法。
- (void)createElements {
NSInteger tag = 0;
for (NSString *str in words) {
UILabel *label = [[UILabel alloc] init];
[self addGesture:label];
[label setTextColor:[UIColor blueColor]];
label.text = str;
[label setAlpha:0.8];
[label setFrame:CGRectMake(0, 0, 100, 20)];
[elements addObject:label];
tag++;
}
}
如何使相對寬度的對象,它也可以正確重新計算?
你可以嘗試使用[方法從這個答案](http://stackoverflow.com/a/3429732/653513)而不是'[label sizeToFit];' –
是的相同的結果可能我需要在任何設置UIFont案例 –