動態調整UILabel的高度或寬度
使用示例:(下面的例子就返回了一個系統默認字體,大小爲18,保持寬爲300,動態調整高度的CGSize)
NSString *testStr = @"動態調整UILabel的高度或寬度";
CGSize result = [testStr sizeWithFont:[UIFont systemFontOfSize:18] maxSize:CGSizeMake(300, MAXFLOAT)];
可以寫一個NSString的類目(Category)
.h中聲明一個方法,寫出需要提供的參數,即字體以及字體的大小,還有最大的尺寸(寬最大或高最大)
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface NSString (Size)
/**返回字符串所佔用的尺寸*/
- (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)size;
@end
.m中的具體實現.h中聲明的方法。返回值是CGSize
#import "NSString+Size.h"
@implementation NSString (Size)
- (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize {
NSDictionary *attributes = @{NSFontAttributeName:font};
return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
}
@end