获取文字高度以及根据label内容来调整label的高度
2014-07-30 13:35
393 查看
ios7以上已经摒弃 sizeWithFont 这个方法,需要用到 boundingRectWithSize 来获取文字的高度
UILabel根据内容自动调整高度
sizeWithFont已经被Apple抛弃了,但还是可以用的
iOS7出来以后,以前的UILabel根据内容获得高度和宽度不建议用了,虽然还可以用,但是总有有强迫症的,不希望有警告,这段代码是iOS7以后UILabel可以根据内容改变高度和宽度。
/*根据label内容来调整label的高度*/
- (void)resizeLabelByContent:(UILabel *)label
{
CGSize maxSize = CGSizeMake(label.width, 999);
label.numberOfLines = 0;
NSString *contentStr = label.text;
UIFont *contentFont = label.font;
CGRect contentFrame;
NSString *version = [[UIDevice currentDevice] systemVersion];
if ([version floatValue] < 7.0) {
CGSize contentStringSize = [contentStr sizeWithFont:contentFont constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];
contentFrame = CGRectMake(label.left, label.top, label.width, contentStringSize.height);
} else {
NSDictionary *contentDic = [NSDictionary dictionaryWithObjectsAndKeys:contentFont, NSFontAttributeName, nil];
CGSize contentStrSize = [contentStr boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:contentDic context:nil].size;
contentFrame = CGRectMake(label.left, label.top, label.width, contentStrSize.height);
}
label.frame = contentFrame;
}
sizeWithFont已经被Apple抛弃了,但还是可以用的
- (void)resizeLabelByContent:(UILabel *)label
{
CGSize maxSize = CGSizeMake(label.width, 999);
label.numberOfLines = 0;
NSString *contentStr = label.text;
UIFont *contentFont = label.font;
CGRect contentFrame;
NSString *version = [[UIDevice currentDevice] systemVersion];
if ([version floatValue] < 7.0) {
CGSize contentStringSize = [contentStr sizeWithFont:contentFont constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];
contentFrame = CGRectMake(label.left, label.top, label.width, contentStringSize.height);
} else {
NSDictionary *contentDic = [NSDictionary dictionaryWithObjectsAndKeys:contentFont, NSFontAttributeName, nil];
CGSize contentStrSize = [contentStr boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:contentDic context:nil].size;
contentFrame = CGRectMake(label.left, label.top, label.width, contentStrSize.height);
}
label.frame = contentFrame;
}
相关文章推荐
- 根据内容获取label的高度、宽度
- iphone根据文本内容调整label高度的方法。
- 根据Label的文字内容动态计算Label高度
- ios 文字 控件 自适应 高度 宽度 CustomCell 自适应高度+uilabel自动换行+ UITextView 根据内容自动调整高度
- 根据文字的个数,label自动适应高度
- 根据内容自动调整IFrame高度
- iframe 根据内容调整高度
- 根据页面内容高度自动调整弹窗大小 推荐
- 让label自适应里面的文字,自动调整宽度和高度的
- 根据内容自动调整iframe框架高度
- 根据内容调整iframe的高度
- 单行显示的UILabel根据文字内容自动调整宽度,文字下方加下划线
- iframe 的高度根据内容自动调整
- 根据内容自动调整IFrame高度
- label调整高度和文字居中
- 根据内容调整iframe的高度
- 让iframe根据内容自动调整高度~~~
- jQuery获取元素位置以及高度与宽度 动态调整打开新窗口效果
- UILabel根据内容自动调整高度
- div/form等无法根据内容自动调整高度解决办法