2013-02-25 76 views
0

我有一個單行標籤,我想截斷單詞邊界並添加省略號(即「快速棕色狐狸......」而不是「快速棕色修復jum ...」。是否有簡單的方法實現這個我試過設置lineBreakMode到UILineBreakModeTailTruncation,UILineBreakModeWordWrap和UILineBreakModeTailTruncation |?。UILineBreakModeWordWrap並沒有這些獲得所需的行爲我也試着自己NSLineBreak ......同行如何使用省略號自動截斷單詞邊界上的UILabel?

+0

可能重複的[獲取UILabel產生省略號,然後收縮字體](http://stackoverflow.com/questions/7725795/getting-uilabel-to-produce-an-ellipsis-rather-then-shrinking-字體) – 2013-02-25 21:32:55

+1

不,不是同一個問題。 UILineBreakModeTailTruncation在字符邊界截斷,而不是字邊界。我已經有字體縮小了。 – 2013-02-25 21:55:25

+1

這並不「容易」,但在NSString UIKit Additions中使用sizeWithFont方法並不困難。 http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html – 2013-02-25 22:31:11

回答

3

我通過定製該得到這個工作example

我的代碼使用-[NSString enumerateSubstringsInRange:options:usingBlock:]找到單詞,然後每個單詞發現我檢查-[NSString boundingRectWithSize:options:attributes:context:]找到字符串是否仍然適合我的寬度限制。如果字符串,最多最新的FO沒有字會超過我的限制,我會用最後一個字作爲截斷字符串的最後一個字。

只需在字符串末尾添加省略號和利潤!