iOS attributeString 换行

- (void)awakeFromNib {

[self.descriptionLabel addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:nil];

[super awakeFromNib];

// Initialization code

}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context

{

self.descriptionLabel.attributedText = [[[self class] attributeWithString:self.descriptionLabel.text] copy];

}

+ (NSMutableAttributedString *)attributeWithString:(NSString *)string

{

NSMutableAttributedString *muAttrString = [[NSMutableAttributedString alloc] initWithString:string];

NSMutableParagraphStyle *paragtaphStyle = [[NSMutableParagraphStyle alloc] init];

paragtaphStyle.alignment = NSTextAlignmentJustified;

paragtaphStyle.paragraphSpacing = 11.0;

paragtaphStyle.paragraphSpacingBefore = 10.0;

paragtaphStyle.headIndent = 0.0;

paragtaphStyle.lineBreakMode = NSLineBreakByWordWrapping;

//    paragtaphStyle.tailIndent = 30.0;

//    paragtaphStyle.firstLineHeadIndent = self.descriptionLabel.font.pointSize * 2.0;

NSDictionary *dic = @{

NSForegroundColorAttributeName:ColorS(@"#585C67"),

NSFontAttributeName:FontWithSize(14.0),

NSParagraphStyleAttributeName:paragtaphStyle,

NSUnderlineStyleAttributeName:@(NSUnderlineStyleNone)

};

[muAttrString setAttributes:dic range:NSMakeRange(0, muAttrString.length)];

return muAttrString;

}

+ (CGFloat)descriptionLabelWidth

{

return SCREEN_WIDTH - 30*2;

}

+ (CGFloat)descriptionHeightWithText:(NSString *)text width:(CGFloat)width

{

NSMutableParagraphStyle *paragtaphStyle = [[NSMutableParagraphStyle alloc] init];

paragtaphStyle.alignment = NSTextAlignmentJustified;

paragtaphStyle.paragraphSpacing = 11.0;

paragtaphStyle.paragraphSpacingBefore = 10.0;   //段落之间的间距

paragtaphStyle.headIndent = 0.0;

paragtaphStyle.lineBreakMode = NSLineBreakByWordWrapping;

CGSize size = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)

options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin

attributes:@{NSFontAttributeName:FontWithSize(14.0),

NSParagraphStyleAttributeName:paragtaphStyle}

context:nil].size;

return size.height + 10.0 + 75.0 + paragtaphStyle.paragraphSpacingBefore;

}

时间: 2024-12-07 21:19:15

iOS attributeString 换行的相关文章

iOS UILabel换行同时修改字体大小颜色

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #3e1e81 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }

手机端页面在项目中遇到的一些问题及解决办法

1.解决页面使用overflow: scroll在iOS上滑动卡顿的问题? 首先你可能会给页面的html和body增加了height: 100%, 然后就可能造成IOS上页面滑动的卡顿问题.解决方案是: (1) 看是否能把body和html的height: 100%去除掉. (2) 在滚动的容器中增加:-webkit-overflow-scrolling: touch或者给body增加:body {overflow-x: hidden}. 2.ios页面橡皮弹回效果遮挡页面选项卡? (1) 有时

手机端页面在项目中遇到的一些问题及解决办法(持续更新)

1.解决页面使用overflow: scroll在iOS上滑动卡顿的问题? 首先你可能会给页面的html和body增加了height: 100%, 然后就可能造成IOS上页面滑动的卡顿问题.解决方案是: (1) 看是否能把body和html的height: 100%去除掉. (2) 在滚动的容器中增加:-webkit-overflow-scrolling: touch或者给body增加:body {overflow-x: hidden}. 2.ios页面橡皮弹回效果遮挡页面选项卡? (1) 有时

iOS实现UILabel换行

在iOS的开发过程中我们经常需要根据label上文字的内容动态显示,当label上的内容超过一行是我们需要实现换行,让文字能够分多行进行显示.下面通过一个例子进行具体实现: <span style="font-size:18px;">CGFloat UIScreen mainScreen]bounds].size.width; self.textLabel.frame = CGRectMake(105, 20, view_width-10-105, 40);//label高

iOS字符串处理_替换(去掉空格换行)、截取

以下代码主要实现了:1.截取"@@"前的字符串:  2.去掉字符串中的"##":  3.去掉字符串中的空格和换行. 希望相互学习相互指正. -----ViewController.m内容如下:------ #import "ViewController.h" #import "HandleString.h" @interface ViewController () { NSString *_str; NSString *_te

ios 去除字符串首尾空格、换行

去除首尾空格: NSString *content = [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 去除首尾空格和换行: NSString *content = [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

iOS去掉字符串中的空格,换行符号

去掉空格和换行符号的实质就是替换掉对应的字符 NSString* str=~~~~~~; //1. 去除掉首尾的空白字符和换行字符 str = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //2. 去除掉其它位置的空白字符和换行字符 str = [str stringByReplacingOccurrencesOfString:@"\r" withStr

iOS text的长文本换行

最近遇到要显示的文本很长,而且要换行显示. 总结一下换行的方法: 1.直接用空格键来换行:(这种换行不彻底,遇到iPhone6Plus就不行了) NSString *authenticationString = [NSString stringWithFormat: @"1.通过荟员认证,且认证时绑定中国银联白金信用卡或钻石信用卡的持卡人可享受该权益;                                                                         

iOS 让按钮上的标题换行显示

项目中遇到了要让按钮上的文字换行显示的需求,就写了这个博客. 1.如果按钮上的文字固定,形式是写死的,可以考虑给标题文字加\n换行符来达到效果,但是,记得一定要设置这个属性,不然是不会换行的, button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; NSString * titleStr = @"换行\n显示"; UIButton * button = [UIButton new]; button.backgroundC