iOS_根據(jù)文字字?jǐn)?shù)動(dòng)態(tài)確定Label寬高

iOS7中用以下方法

- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;

替代過(guò)時(shí)的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法

// iOS7_API_根據(jù)文字 字?jǐn)?shù)動(dòng)態(tài)確定Label寬高

// 設(shè)置Label的字體 HelveticaNeueCourier

UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];

_nameLabel.font = fnt;

// 根據(jù)字體得到NSString的尺寸

CGSize size = [_nameLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];

// 名字的H

CGFloat nameH = size.height;

// 名字的W

CGFloat nameW = size.width;

_nameLabel.frame = CGRectMake(0, 0, nameW,nameH);

iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代過(guò)時(shí)的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法

// 4,根據(jù)正文內(nèi)容多少,動(dòng)態(tài)確定正文content的frame

// 寬度W

CGFloat contentW = self.bounds.size.width - _content.frame.origin.x - kMargin;

// label的字體 HelveticaNeueCourier

UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:18.0f];

_content.font = fnt;

_content.numberOfLines = 0;

_content.lineBreakMode = NSLineBreakByWordWrapping;

// iOS7中用以下方法替代過(guò)時(shí)的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法

CGRect tmpRect = [_content.text boundingRectWithSize:CGSizeMake(contentW, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil] context:nil];

// 高度H

CGFloat contentH = tmpRect.size.height;

NSLog(@"調(diào)整后的顯示寬度:%f,顯示高度:%f"contentW,contentH);

_content.frame = CGRectMake(0, 0, contentW,contentH);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容