美文网首页程序媛iOS Developer
iOS开发,解决UILabel中划线失效的问题

iOS开发,解决UILabel中划线失效的问题

作者: 林夕不昔 | 来源:发表于2017-09-27 18:03 被阅读18次

根本原因:

iOS10.3以后才出现这种问题,可能是系统的bug。
只要label的文字有中文,富文本字符串的中划线就会失效。

解决办法:

第一种:字符串中的符号,换成英文状态的符号

如:人民币符号“¥”和“¥”,使用前面一个即可。

第二种:让富文本支持“中文”
 增加一个富文本属性:NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)

代码:

    NSString *textContent = @"原价:500元";
    
    //label
    CGFloat labelW = self.view.frame.size.width-20*2;
    CGFloat labelH = 300;
    UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, labelW, labelH)];
    //多行显示
    testLabel.numberOfLines = 0;
    testLabel.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:testLabel];
    
    //富文本属性
    NSMutableDictionary *textDict = [NSMutableDictionary dictionary];
    
    //字体颜色
    textDict[NSForegroundColorAttributeName] = [UIColor lightGrayColor];
    //字号大小
    textDict[NSFontAttributeName] = [UIFont systemFontOfSize:16.0];
    //中划线
    textDict[NSStrikethroughStyleAttributeName] = [NSNumber numberWithInteger:NSUnderlineStyleSingle];
    //支持中文
    textDict[NSBaselineOffsetAttributeName] = @(NSUnderlineStyleSingle);
    
    //赋值
    testLabel.attributedText = [[NSAttributedString alloc] initWithString:textContent attributes:textDict];

相关文章

网友评论

    本文标题:iOS开发,解决UILabel中划线失效的问题

    本文链接:https://www.haomeiwen.com/subject/kiouextx.html