像UILabel之類的顯示NSString的控件,其屬性都可以在NSMutableAttributedString中進(jìn)行設(shè)置附參考鏈接:
http://blog.csdn.net/u013346305/article/details/50896308
http://blog.csdn.net/hdfqq188816190/article/details/50680385
在iOS7之后計(jì)算字符串高度的sizeWithFont方法已經(jīng)被boundingRectWithSize代替鸵闪,增加了對(duì)富文本的相關(guān)設(shè)定。
在使用富文本時(shí)應(yīng)注意中英混合的情況暑诸,該情況會(huì)使你的換行操作出現(xiàn)問題蚌讼,因?yàn)楹芏嗑幾g器默認(rèn)會(huì)計(jì)算當(dāng)“中文”+“英文”后如果寬度大于設(shè)定的控件寬度時(shí),會(huì)將中文后的英文直接換到第二行顯示(即lineBreakMode的默認(rèn)屬性為NSLineBreakByWordWrapping)个榕,在Xcode中的控制臺(tái)打印和coding的時(shí)候都會(huì)出現(xiàn)這個(gè)情況篡石。
此時(shí)應(yīng)該:label.lineBreakMode = NSLineBreakByCharWrapping;
如果此時(shí)你是即進(jìn)行了富文本設(shè)定又對(duì)換行進(jìn)行設(shè)定的話,記住先把換行操作的代碼放到label.attributedText = .......代碼之后西采,不然label.lineBreakMode = NSLineBreakByCharWrapping會(huì)失效凰萨。