iOS 11关于attributedText的大坑[未解决]

截图:

相同的代码,分别运行在iPhone 8(iOS 11)和iPhone 7(iOS 10.3.1)

问题描述:

UILabel,指定行数,高度通过sizetofit来自适应高度(自己计算高度也试过,还是一样的这个问题),发现主要是由于这个UILabel的attributedText引起的,两个属性NSBackgroundColorAttributeName和paragraphStyle.lineSpacing这两个属性同时设置导致出现这种情况,仅在iOS 11出现。

代码片段:

- (void)addLabel {

    UILabel*label = [UILabelnew];

    label.backgroundColor= [UIColorblueColor];

    label.numberOfLines=3;

    NSAttributedString*attributedStr = [selfsetupAttributedString:eng_text];

    label.attributedText= attributedStr;

    label.frame=CGRectMake(0,0,300,0);

    [labelsizeToFit];

    label.center=CGPointMake(ScreenWidth/2, (ScreenHeight-20)/2);

    [self.viewaddSubview:label];

}

- (NSMutableAttributedString*)setupAttributedString:(NSString*)text {

    NSMutableDictionary*attrsDic = [NSMutableDictionarydictionary];

    attrsDic[NSFontAttributeName] = [UIFontsystemFontOfSize:12];        

    attrsDic[NSBackgroundColorAttributeName] = [UIColorredColor];

    NSMutableParagraphStyle*paragraphStyle = [[NSMutableParagraphStylealloc]init];

    paragraphStyle.lineSpacing=10;

    paragraphStyle.lineBreakMode=NSLineBreakByTruncatingTail;

    attrsDic[NSParagraphStyleAttributeName] = paragraphStyle;

    attrsDic[NSForegroundColorAttributeName] = [UIColorwhiteColor];

    NSMutableAttributedString*attributedText = [[NSMutableAttributedStringalloc]initWithString:textattributes:attrsDic];

    returnattributedText.copy;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容