2010-10-12 47 views
2

我試圖用這個方法來繪製一個字符串轉換爲自定義的UITableViewCell。的NSString drawInRect與UILineBreakModeTailTruncation不會出現在「...」

[self.text drawInRect:TEXT_RECT withFont:font lineBreakMode:UILineBreakModeTailTruncation alignment:UITextAlignmentLeft]; 

的問題是,如果文本太長,文字實際上是尾巴截斷,但它不顯示「...」

如果我使用drawInPoint

[self.text drawAtPoint:CGPointMake(60, 0) forWidth:200 withFont:font minFontSize:15 actualFontSize:nil lineBreakMode:UILineBreakModeTailTruncation 
    baselineAdjustment:UIBaselineAdjustmentAlignBaselines]; 

然後,我得到「...」,但現在它使我所有的文本都成爲一行,所以相當長的文本會過早被截斷。例如:

如果我有文字"Hello all, here is my first book"。如果我使用drawInRect,那麼我可以在2行顯示它,但如果我用drawAtPoint,我只看到像第一行:"Hello all, here ..."

因此,任何的幫助,使這兩種方法的工作可以理解

回答

0

UILineBreakModeTailTruncation只截斷最後一行文本。 TEXT_RECT是否足夠容納多行文字?似乎是尾巴截斷可能只是一個不夠高的矩形。

+0

這裏是我的TEXT_RECT:#定義TEXT_RECT CGRectMake(60,0,200,200) 我認爲這是大到足以包含任何文本。在我的手機中,它可以包含多達2行的文本 – vodkhang 2010-10-12 03:45:07

+0

這看起來確實夠大。你在做自定義繪圖的'UIView'有多大?如果它小於兩行文本並且「clipsToBounds」設置爲「YES」,則可能會剪裁您的圖形。 – 2010-10-12 03:52:47

+0

我正在繪製UITableViewCell,單元格的高度是44,我認爲clipsToBounds是YES。然後,我怎樣才能以編程方式顯示「...」 – vodkhang 2010-10-12 04:03:31

相關問題