Sus*_*rma 3 objective-c uilabel ios7.1 xcode5.1
我有一个UILabel子视图,UIButton我从另一个视图传递值并填充UILabel.现在,我希望UILabel
必须根据内容更改其高度.如果文本为"Hello",则必须为1行,但如果文本为"我的文本太长而无法放入标签",则必须更改其大小.我用过
[self.addressLabel sizeToFit];
Run Code Online (Sandbox Code Playgroud)
但为此,我需要在UILabel下留下空白空间.我想要的是,当文本强度增加时,UILabel和UIView的大小必须扩展.
kar*_*hik 12
使用下面的方法可以获得标签的高度
宽度 - 标签的宽度
-(float) getHeightForText:(NSString*) text withFont:(UIFont*) font andWidth:(float) width{
CGSize constraint = CGSizeMake(width , 20000.0f);
CGSize title_size;
float totalHeight;
SEL selector = @selector(boundingRectWithSize:options:attributes:context:);
if ([text respondsToSelector:selector]) {
title_size = [text boundingRectWithSize:constraint
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{ NSFontAttributeName : font }
context:nil].size;
totalHeight = ceil(title_size.height);
} else {
title_size = [text sizeWithFont:font
constrainedToSize:constraint
lineBreakMode:NSLineBreakByWordWrapping];
totalHeight = title_size.height ;
}
CGFloat height = MAX(totalHeight, 40.0f);
return height;
}
Run Code Online (Sandbox Code Playgroud)并使用高度创建一个框架
CGRect frame = questionTitleLbl.frame;
float height = [self getHeightForText:questionTitleLbl.text
withFont:questionTitleLbl.font
andWidth:questionTitleLbl.frame.size.width];
float gap = 2;
cell.questionTitleLbl.frame = CGRectMake(frame.origin.x,
frame.origin.y,
frame.size.width,
height);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13703 次 |
| 最近记录: |