像UILabel之类的显示NSString的控件,其属性都可以在NSMutableAttributedString中进行设置附参考链接:
http://blog.csdn.net/u013346305/article/details/50896308
http://blog.csdn.net/hdfqq188816190/article/details/50680385
在iOS7之后计算字符串高度的sizeWithFont方法已经被boundingRectWithSize代替,增加了对富文本的相关设定。
在使用富文本时应注意中英混合的情况,该情况会使你的换行操作出现问题,因为很多编译器默认会计算当“中文”+“英文”后如果宽度大于设定的控件宽度时,会将中文后的英文直接换到第二行显示(即lineBreakMode的默认属性为NSLineBreakByWordWrapping),在Xcode中的控制台打印和coding的时候都会出现这个情况。
此时应该:label.lineBreakMode = NSLineBreakByCharWrapping;
如果此时你是即进行了富文本设定又对换行进行设定的话,记住先把换行操作的代码放到label.attributedText = .......代码之后,不然label.lineBreakMode = NSLineBreakByCharWrapping会失效。