2010-10-12 6 views
2

J'essaie d'utiliser cette méthode pour dessiner une chaîne dans un UITableViewCell personnalisé.NSString drawInRect avec UILineBreakModeTailTruncation n'apparaît pas le "..."

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

Le problème est que si le texte est trop long, le texte est en fait la queue troncature, mais il ne présente pas « ... »

Si j'utilise le drawInPoint

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

Ensuite, je reçois le "..." mais maintenant il fait tout mon texte sur une ligne, donc le texte assez long sera tronqué trop tôt. Par exemple:

Si j'ai le texte "Hello all, here is my first book". Si j'utilise drawInRect, je peux l'afficher en 2 lignes, mais si je l'utilise drawAtPoint, je ne voir la première ligne comme: "Hello all, here ..."

Ainsi, toute aide à faire soit méthode de travail sera apprécié

Répondre

0

UILineBreakModeTailTruncation tronque seulement la dernière ligne de texte. Est-ce que TEXT_RECT est suffisamment grand pour contenir plusieurs lignes de texte? Ce qui semble être une troncation de queue pourrait bien être un rect qui n'est pas assez grand.

+0

Voici ma TEXT_RECT: #define TEXT_RECT CGRectMake (60, 0, 200, 200) Je pense que c'est assez grand pour contenir du texte. Dans ma cellule, il peut contenir du texte jusqu'à 2 lignes – vodkhang

+0

Cela semble assez grand. Quelle est la taille du 'UIView' dans lequel vous faites le dessin personnalisé? Si elle est plus petite que deux lignes de texte et que 'clipsToBounds' est défini sur' YES', cela risque d'écrêter votre dessin. –

+0

Je dessine à l'intérieur de l'UITableViewCell et la hauteur de la cellule est de 44, je pense que les ClipsToBounds est OUI. Puis, comment puis-je afficher "..." par programme – vodkhang

Questions connexes