本文主要是介绍iOS开发用boundingRectWithSize:options:attributes:context:写的一个分类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在开发当中有时候需要通过计算一段文本的尺寸大小而实现label等文本控件的自动伸缩
代码:
#import "UILabel+StringFrame.h"@implementation UILabel (StringFrame)
- (CGSize)boundingRectWithSize:(CGSize)size
{NSDictionary *attribute = @{NSFontAttributeName: self.font};CGSize retSize = [self.text boundingRectWithSize:sizeoptions:\NSStringDrawingTruncatesLastVisibleLine |NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeadingattributes:attributecontext:nil].size;return retSize;
}
@end
#import <UIKit/UIKit.h>
/**动态计算机label的高度*/
@interface UILabel (StringFrame)
/**动态计算机label的高度*/
- (CGSize)boundingRectWithSize:(CGSize)size;
@end
使用这个分类:
UILabel *label = [[UILabel alloc]init];label.backgroundColor = [UIColor whiteColor];[self.view addSubview:label];label.text = str;
// label.font = [UIFont fontWithName:Nil size:18];label.font = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];// UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];CGSize size = [label boundingRectWithSize:CGSizeMake(Screen_width, 0)];label.numberOfLines = 0;label.frame = CGRectMake(0.0f, 150.f, size.width, size.height);NSLog(@"label的frame = %@", NSStringFromCGRect(label.frame));
这篇关于iOS开发用boundingRectWithSize:options:attributes:context:写的一个分类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!