iOS lable设置富文本后在最后一行没有显示省略号的问题解决

来源:互联网 发布:电信4g网络覆盖范围 编辑:程序博客网 时间:2024/06/04 18:09

我们在开发的中,有时候为了界面的美观,不论是新闻类、购物类还是阅读类app,因为文字量比较大,不能完全显示,就会在末尾显示省略号(如图一),我们都知道,如果不设置富文本的情况下,label的属性默认是在最后添加省略号的,但是通过富文本的形式设置行间距后,省略号就不会再显示(如图二),这样的效果会给用户带来一定的阅读障碍,所以我们需要解决这个问题,解决后效果展示(如图三)


默认样式:


图一



添加行间距样式:


图二



解决添加行间距后,末尾显示省略号样式:


图三



解决方法:

通过代码的运行,我们可以看出在设置富文本之后,lable的lineBreakMode属性样式被更改,我们只需要将lineBreakMode的样式改回省略号在末尾显示,就可以解决设置富文本之后在文末显示省略号的问题,代码如下:

- (void)viewDidLoad {    [super viewDidLoad];        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 120, [UIScreen mainScreen].bounds.size.width-40, 200)];    label.layer.borderColor = [UIColor darkGrayColor].CGColor;    label.font = [UIFont systemFontOfSize:24.0f];    label.layer.borderWidth = 0.5f;    label.numberOfLines = 3;    label.text = @"月考终于考完了,我花了九牛二虎之力,却还是考得不理想,我也只能“尽人事,听天命”,可是却难以忍受失败的痛苦滋味";    [self.view addSubview:label];    NSLog(@"未设置富文本的情况下的默认的lineBreakMode样式 : %ld",(long)label.lineBreakMode);        //富文本方式设置行间距    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];    paragraphStyle.lineSpacing = 10.0f;    NSDictionary *attributes = @{ NSFontAttributeName:[UIFont systemFontOfSize:24.0f], NSParagraphStyleAttributeName:paragraphStyle};    label.attributedText = [[NSAttributedString alloc]initWithString:label.text attributes:attributes];    [label sizeToFit];    NSLog(@"设置富文本后,lineBreakMode样式 : %ld",(long)label.lineBreakMode);        //将lineBreakMode样式改回在末尾显示省略号的样式    label.lineBreakMode = NSLineBreakByTruncatingTail;        /*    NSParagraphStyle    typedef NS_ENUM(NSInteger, NSLineBreakMode) {        NSLineBreakByWordWrapping = 0,     // Wrap at word boundaries, default        NSLineBreakByCharWrapping,// Wrap at character boundaries        NSLineBreakByClipping,// Simply clip        NSLineBreakByTruncatingHead,// Truncate at head of line: "...wxyz"        NSLineBreakByTruncatingTail,// Truncate at tail of line: "abcd..."        NSLineBreakByTruncatingMiddle// Truncate middle of line:  "ab...yz"    } NS_ENUM_AVAILABLE(10_0, 6_0);     */}


原创粉丝点击