NSAttributedString设置折行方式NSLineBreakByTruncatingTail,计算高度出错,高度返回异常。

iOS13上,NSAttributedString设置折行方式NSLineBreakByTruncatingTail,计算高度出错,只返回一行的高度。

NSMutableParagraphStyle *style = \[NSMutableParagraphStyle allocinit];

style.hyphenationFactor = 1; // 设置每行的最后单词是否截断,在0.0-1.0之间,默认为0.0,越接近1.0单词被截断的可能性越大,

设置hyphenationFactor=1,在计算就返回正常高度了。

如果设置不起效。换下面的方法

找到了解决方案。只需将 NSMutableParagraphStyle 上的 setAllowsDefaultTighteningForTruncation 设置为 YES。

参考 cocoa - Making NSTextField not shrink when NSLineBreakByTruncatingTail is set - Stack Overflow

复制代码
    NSString *highlightTitle = title;

    //转换参数

    NSDictionary *options = @{ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding) };

    //将html文本转换为正常格式的文本

    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithData:[highlightTitle dataUsingEncoding:NSUnicodeStringEncoding] options:options documentAttributes:nil error:nil];

    

    [attributedString removeAttribute:NSParagraphStyleAttributeName range: NSMakeRange(0, attributedString.length)];

    [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, attributedString.length)];

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

//    paragraphStyle.hyphenationFactor = 1;

    [paragraphStyle setLineSpacing:space];

    paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;

    [paragraphStyle setAllowsDefaultTighteningForTruncation:YES];

    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [attributedString length])];

    return attributedString;
相关推荐
秋雨梧桐叶落莳23 分钟前
iOS——NSUserDefaults学习
学习·macos·ios·objective-c·cocoa
2601_955767422 小时前
iPhone 17 OLED 屏幕偏振光学分析 & AR 镀膜与双护技术实践解析
人工智能·科技·ios·iphone·圆偏振光
人月神话Lee5 小时前
【图像处理】颜色空间——RGB之外的世界
ios·ai编程·图像识别
用户029669769825 小时前
微信iPad协议的消息加密与安全传输机制
ios
开开心心loky6 小时前
[OC 底层] (五) iOS 中常见的几种锁
macos·ios·cocoa
库奇噜啦呼12 小时前
【iOS】源码学习-SDWebImage源码学习
学习·ios
zuYM4g7Dp12 小时前
文顶顶iOS开发数据库篇—SQL
数据库·sql·ios
超梦dasgg13 小时前
APP 壳、加固、脱壳 完整通俗讲解(安卓为主,兼顾 iOS)
android·ios
代码的小搬运工14 小时前
【iOS】MVC架构
ios·架构·mvc
鹤卿12314 小时前
iOS OC NSUserDefaults
macos·ios·objective-c