NSAttributedString設置折行方式NSLineBreakByTruncatingTail,計算高度出錯,高度返回異常。

iOS13上,NSAttributedString設置折行方式NSLineBreakByTruncatingTail,計算高度出錯,只返回一行的高度。

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

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;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探究Kafka原理-1.初識Kafka

👏作者簡介:大家好,我是愛吃芝士的土豆倪,24屆校招生Java選手,很高興認識大家📕系列專欄:Spring源碼、JUC源碼、Kafka原理🔥如果感覺博主的文章還不錯的話,請&#x1f44…

音視頻項目—基于FFmpeg和SDL的音視頻播放器解析(十九)

介紹 在本系列,我打算花大篇幅講解我的 gitee 項目音視頻播放器,在這個項目,您可以學到音視頻解封裝,解碼,SDL渲染相關的知識。您對源代碼感興趣的話,請查看基于FFmpeg和SDL的音視頻播放器 如果您不理解本…

Postman API Enterprise 10.18.1 Crack

適合您企業的 Postman API 平臺 掌控您的 API 環境。構建更好的 API。加快產品開發。 無論您處于 API 之旅的哪個階段,Postman 都會為您提供幫助 想讓您團隊的 API 更容易被發現嗎?希望減少開發和質量檢查之間的滯后時間?想要更快地讓新開發…

在Spring Boot中使用ECharts繪制數據圖表

使用ECharts來完成一些花里胡哨的圖表吧,一般這種需求我們在我們的客戶端不太常見,但是,我們在后端進行各種數據統計的時候就會發現ECharts的優點了,比如我們常常做的柱狀圖,折線圖,雷達圖等可視化形式&…

Mac M1 安裝Docker打包arm64的python項目的鏡像包

1、首先安裝Docker,到官網下載,選擇apple chip版 Docker中文網 官網 2、雙擊下載的dmg文件,在彈出框中之間拖拽到右邊 3、打開docker,修改國內鏡像源,位置在配置-DockerEngine "registry-mirrors": ["…

『亞馬遜云科技產品測評』活動征文|AWS 數據庫產品類別及其適用場景詳細說明

授權聲明:本篇文章授權活動官方亞馬遜云科技文章轉發、改寫權,包括不限于在 Developer Centre, 知乎,自媒體平臺,第三方開發者媒體等亞馬遜云科技官方渠道 目錄 前言、AWS 數據庫產品類別 01、Amazon Aurora 02、Amazon Docum…

基于STM32的手勢識別算法研究與應用

基于STM32的手勢識別算法在人機交互和智能設備控制中具有重要的應用價值。本文將介紹基于STM32的手勢識別算法的研究原理和實現步驟,并提供相應的代碼示例。 1. 手勢識別概述 手勢識別是一種通過分析人體的手部動作和姿勢來識別和理解人的意圖的技術。基于STM32的…

YOLOv5 分類模型 數據集加載 3

YOLOv5 分類模型 數據集加載 3 自定義類別 flyfish YOLOv5 分類模型 數據集加載 1 樣本處理 YOLOv5 分類模型 數據集加載 2 切片處理 YOLOv5 分類模型的預處理(1) Resize 和 CenterCrop YOLOv5 分類模型的預處理(2)ToTensor 和 …

scrapy自定義日志

自定義日志系統 首先,在Scrapy的settings.py文件中添加以下代碼: LOG_LEVEL DEBUG # 日志級別 LOG_FILE /path/to/logfile.log # 日志文件路徑 LOG_ENABLED True # 是否啟用日志 LOG_STDOUT False # 是否輸出到標準輸出這些設置將指定Scrapy日…

【PHP】PHP生成全年日歷

👉博__主👈:米碼收割機 👉技__能👈:C/Python語言 👉公眾號👈:測試開發自動化【獲取源碼商業合作】 👉榮__譽👈:阿里云博客專家博主、5…

5-8輸出水仙花數

#include<stdio.h> int main(){int i,j,k;int n;for(n100;n<1000;n){in/100;jn/10-i*10;kn%10;if(ni*i*ij*j*jk*k*k)printf("%d ",n);}printf("\n");return 0; }

Dubbo從入門到上天系列第十八篇:Dubbo引入注冊中心簡介以及DubboAdmin簡要介紹,為后續詳解Dubbo各種注冊中心做鋪墊!

一&#xff1a;Dubbo注冊中心引言 1&#xff1a;什么是Dubbo的注冊中心&#xff1f; Dubbo注冊中心是Dubbo服務治理中極其重要的一個概念。它主要是用于對Rpc集群應用實例進行管理。 對于我們的Dubbo服務來講&#xff0c;至少有兩部分構成&#xff0c;一部分是Provider一部分是…

uniapp開發小程序-如何判斷小程序是在手機端還是pc端打開

官方說明 https://developers.weixin.qq.com/miniprogram/dev/devtools/pc-dev.html 小程序如何判斷是 PC 平臺&#xff1f; 通過 getSystemInfo 官方接口&#xff08;platform 是 windows&#xff09; 通過 UA&#xff08;PC UA 包含 MiniProgramEnv/Windows&#xff09; …

section header

section header table 是一個section header的集合&#xff0c;每個section header是一個描述section的結構體。在同一個ELF文件中&#xff0c;每個section header大小是相同的。 每個section都有一個section header描述它&#xff0c;但是一個section header可能在文件中沒有…

云計算實驗如何結合AI來提高效率!

隨著AI助手的流行&#xff0c;我們現在無論是學習還是工作都會帶著一個他/她&#xff0c;如何讓AI助手提高我們的工作效率是我們需要進化的方向。下面結合“云計算實驗”來分享一下如何讓AI幫助我們學得更快學得更好。 一、學習某個軟件或復雜命令 比如在學習RockyLinux9.2中…

Android Spannable 使用?注意事項

1、當前示例中間的 "評論"&#xff0c;使用SpannableStringBuilder實現&#xff0c;點擊評論會有高亮效果加粗&#xff0c;但再點擊其它Bar時無法恢復默認樣式。 2、因為SpannableString或SpannableStringBuilder中的效果是疊加的&#xff0c;恢復默認樣式需要先移除…

【Qt-25】控件篇

一、comboBox控件 1、獲取item數量 ui->comboBox_2->count(); 2、根據索引值獲取文本 ui->comboBox->itemText(i); 3、調整當前顯示文本內容 ui->comboBox->setCurrentIndex(j); 4、添加item ui->comboBox->addItem("");//添加一個內…

基于SSM的濟南旅游網站設計與實現

末尾獲取源碼 開發語言&#xff1a;Java Java開發工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 數據庫&#xff1a;MySQL5.7和Navicat管理工具結合 服務器&#xff1a;Tomcat8.5 開發軟件&#xff1a;IDEA / Eclipse 是否Maven項目&#xff1a;是 目錄…

汽車級全保護型六路半橋驅動器NCV7708FDWR2G 原理、參數及應用

NCV7708FDWR2G 是一款全保護型六路半橋驅動器&#xff0c;特別適用于汽車和工業運動控制應用。六個高壓側和低壓側驅動器可自由配置&#xff0c;也可單獨控制。因此可實現高壓側、低壓側和 H 橋控制。H 橋控制提供正向、逆向、制動和高阻抗狀態。驅動器通過標準 SPI 接口進行控…

python 基于gdal,richdem,pysheds實現 實現洼填、D8流向,匯流累計量計算,河網連接,分水嶺及其水文分析與斜坡單元生成

python gdal實現水文分析算法及其斜坡單元生成 實現洼填、D8流向,匯流累計量計算,河網連接,分水嶺 # utf-8 import richdem as rdre from River import * from pysheds.grid import Grid import time from time import time,sleep import numpy as np from osgeo import g…