例如,如果UILabel
的文本是:"Questions that may already have your answer"
,我希望它打印 "Questions that may alr"
。我不想剪掉最後一個字符,但是在那個時候剪掉了文本。如何在iOS上使用帶setNumberOfLines:1的NSLineBreakByCharWrapping?
我不能使用字符限制,因爲大多數字體不是等寬字體。我不能使用剪裁,因爲它可能會在另一個點上剪切文本,或者可能會從最後的任何位置剪下最後一個字母「r」。
我想要的行爲類似於NSLineBreakByCharWrapping
而numberOfLines = 0
。因此,我希望它放棄(包裝)那個不合適的最後一個字符,但我希望它放下/包裝到一個隱藏的空間=我不想要那第二行。
這怎麼可能?
問題是,文本不是固定的文本,所以我不能只計算大小。我們需要像「確定可以放入目標空間的最大字符數量,然後我們可以相應地得到子字符串,所以除了試圖找到足夠的字符數量以外,我不知道該怎麼嘗試(例如'for(int i = 0; i <...; i ++){maxIndex = i; if(size.width of(substring of string to i)> target width){break;}} '但這看起來效率不高) – frankish