TTTAttributedLabel サンプル アプリ「Espresso」で linebreakmode を truncation tail に設定すると、すべてが iOS 5 シミュレーターにあるように見えますが、iOS 6 シミュレーターでアプリを実行すると、テキストは 3 行を超えますが、最初の行の後にテキストが切り捨てられます. 行数はゼロに設定されます。私は何か見落としてますか?Espresso アプリでこの動作に気付いた後は、自分のアプリのコードの破損について心配する必要がなくなりました。助言がありますか?ありがとう!
5 に答える
私は現在同じ問題に直面しました。実際にテキストを設定する前に、LineBreakMode を設定してみてください。例えば:
TTTAttributedLabel* descriptionLabel = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(20, 120, 280, expectedSize.height)];
descriptionLabel.lineBreakMode = UILineBreakModeWordWrap;
descriptionLabel.numberOfLines = 0;
descriptionLabel.text = description;
私の場合、何らかの理由で次のコードにより、ラベルに 1 行しか表示されませんでした。それを削除すると、' self.attributedLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;'
iOS 6 のラベルとテキストビューは、属性付きテキストをネイティブにサポートします。そのため、古いバージョンの iOS をサポートする必要がない場合は、サードパーティ コントロールを取り除くことができます。
不思議なことに、問題は自然に解決しました。この特定の問題が iOS6 シミュレーターで発生した理由を理解できませんでしたが、iOS6 デバイスとシミュレーターの NSLineBreakTailTruncation で動作するようになりました。
ご回答ありがとうございます。
お試しいただけます。
NSMutableAttributedString * mutableAttributedString = [[NSMutableAttributedString alloc]initWithString:text];
[self.attributedLabel setText:mutableAttributedString afterInheritingLabelAttributesAndConfiguringWithBlock:nil];