您的位置:首页 > 移动开发 > IOS开发

iOS 根据文字内容动态设置宽度与高度

2015-12-23 16:48 573 查看
下面说一下在开发中,遇到的一个简单的文字排版代码片段。

//这是计算 label 根据文字的显示 格式和字数得出的宽高

- (CGSize) calculateLabelSize:(UILabel *)label{

// 设置Label的字体 HelveticaNeue  Courier
UIFont *fnt = [UIFont fontWithName:label.text size:label.font.pointSize];
label.font = fnt;
// 根据字体得到NSString的尺寸
CGSize size = [label.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:label.font,NSFontAttributeName, nil]];
// 名字的H
CGFloat nameH = size.height;
// 名字的W
CGFloat nameW = size.width;
CGSize sizes = CGSizeMake(nameW, nameH);
return sizes;

}
//限制 label 显示的最大宽度和设置显示的样式  【我是懒加载的形式去创建 label,然后重写 get 方法自定义 label 的样式】
- (UILabel *)addRess{
if (_addRess == nil) {

_addRess = [[UILabel alloc] init];
_addRess.font = [UIFont systemFontOfSize:9.f];
_addRess.lineBreakMode = NSLineBreakByTruncatingTail;
_addRess.numberOfLines = 0;
[self.contentView addSubview:_addRess];
}
CGSize size = [self calculateLabelSize:_addRess];
_addRess.frame = CGRectMake(_addRess.frame.origin.x, _addRess.frame.origin.y, size.width>=200.f?200.f:size.width, size.height);

return _addRess;

}
小小技术点,可自行 get
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios uilabel 字体