iOS6 以上设置文本高度,行高(转)
2014-07-23 17:39
162 查看
2013-12-09 我来说两句 来源:冻僵的企鹅'zone 收藏
我要投稿
在iOS 7之前,常用下面这个方法计算文本高度sizeWithFont:constrainedToSize:lineBreakMode:(Deprecated in iOS 7.0)
但是到了iOS 7 之后,这个方法就不建议使用了。提示用下面这个方法:
boundingRectWithSize:options:attributes:context:(Available in iOS 7.0 and later.)
可是这个方法是iOS 7 及其以后才能使用,我们现在的程序大部分都希望还能兼容iOS 6,甚至iOS 5。我们的程序只需要兼容iOS6,所以我希望有个方法能在iOS 6及其以上都能使用。
NSAttributedString就有一个类似的方法:
boundingRectWithSize:options:context:(Available in iOS 6.0 and later.)
使用这个方法需要先将NSString转为NSAttributedString:
这里用到了类别,self就是调用方法的receiver。另外这里还可以设置文字的行间距。
然后就是计算文本的大小:
将这两个方法写在类别中,使用起来就很方便了:
我要投稿
在iOS 7之前,常用下面这个方法计算文本高度sizeWithFont:constrainedToSize:lineBreakMode:(Deprecated in iOS 7.0)
但是到了iOS 7 之后,这个方法就不建议使用了。提示用下面这个方法:
boundingRectWithSize:options:attributes:context:(Available in iOS 7.0 and later.)
可是这个方法是iOS 7 及其以后才能使用,我们现在的程序大部分都希望还能兼容iOS 6,甚至iOS 5。我们的程序只需要兼容iOS6,所以我希望有个方法能在iOS 6及其以上都能使用。
NSAttributedString就有一个类似的方法:
boundingRectWithSize:options:context:(Available in iOS 6.0 and later.)
使用这个方法需要先将NSString转为NSAttributedString:
-(NSMutableAttributedString *)attributedStringFromStingWithFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:self attributes:@{NSFontAttributeName:font}]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:lineSpacing]; [attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [self length])]; return attributedStr; }
这里用到了类别,self就是调用方法的receiver。另外这里还可以设置文字的行间距。
然后就是计算文本的大小:
将这两个方法写在类别中,使用起来就很方便了:
@interface NSString(extended) //计算文本的size -(CGSize)boundingRectWithSize:(CGSize)size withTextFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing; //sting转AttributedString -(NSMutableAttributedString *)attributedStringFromStingWithFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing; @end
相关文章推荐
- 【iOS开发】---- iOS6 以上设置文本高度,行高
- 通过设置文本的行高与外部容器的高度一致,可以使文本垂直居中
- iOS-设置文本行高并计算高度
- C#如何设置Listview的行高-高度
- 关于div行高的巨细问题(如何设置 div 的最小高度)
- Android根据所设置的textSize获取字体高度和设置行高
- HTML的TextArea标记跟随文本内容自动设置高度
- 根据文本内容设置单元格的行高
- 水滴石穿之子页面的滚动条设置 表格的固定高度宽度问题 复制带格式的文本
- Android GridView设置行高,即item高度
- Android获取字体高度和设置行高
- 设置行间距,计算带行间距的文本高度
- List Control 可编辑任意item文本,设置行高
- 设置代码ios中根据文本设置label高度设置代码
- UITextView设置圆角及根据文本大小自适应高度
- 在iOS7中让表视图变成iOS6的圆角矩形与纯汉字文本的cell高度自适应
- 动态设置文本行高!
- Android获取字体高度和设置行高
- C#如何设置Listview的行高-高度
- 如何设置文本输入框的高度?