2010-11-07 53 views
0

我有一個視圖,在UITableViewCell中繪製多彩文本。爲了繪製多彩文本我使用的是NSAttributedString但是,我想這樣做,以便如果文本太長而不適合視圖,最後一個可見的行被截斷以在其末尾顯示省略號。NSAttributedString:換行+截斷

很顯然,只繪製一條線就很容易,因爲您可以爲段落樣式的換行模式設置 kCTLineBreakByTruncatingTail。問題是我想讓我的文本換行來填充矩形,然後只用省略號截斷最後一行 - 設置換行符模式將整個文本限制爲一行。

有沒有人有任何想法,我會怎麼做呢?

非常感謝您的任何建議, JC。

+0

你有沒有想過這個? – 2010-11-18 19:33:25

回答

0

那麼,爲了激活UILabel中的文本截斷,您應該在設置屬性文字之後將lineBreakMode參數重新設置爲NSLineBreakByTruncatingTail。

textLabel.attributedText = attributedText; 
textLabel.lineBreakMode = NSLineBreakByTruncatingTail; 
0

使用您的UITableViewCell的矩形從您的CTFrameSetter創建您的CTFrame。然後,您可以獲取CTFrame的所有CTLines,並確定它們何時切斷。要換出省略號,可以用一個單獨的CTFrame繪製它,並將其繪製在最後一行的溢出文本上​​。