動態調整UILabel的高度或寬度

動態調整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
發佈了25 篇原創文章 · 獲贊 26 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章