2

サブビューを作成し、カスタム描画用の drawRect: メソッドを実装しました。テキストが長すぎてフレームに収まらない場合に、省略記号 (...) を自動的に追加する UILabel と同様の動作を実現するにはどうすればよいですか。

ここにコードがあります

- (void)drawRect:(CGRect)rect
{
    NSDictionary *attributes = @{NSFontAttributeName : [UIFont systemFontOfSize:16.0f], NSForegroundColorAttributeName : [UIColor blackColor]};
    [self.sampleText drawInRect:CGRectMake(10.0f, 10.0f, self.frame.size.width - 20.0f, self.frame.size.height - 20.0f) withAttributes:attributes];
}

sampleText が長い場合は、指定された rect 内に収まるように切り取られます。「...」を適切に追加するにはどうすればよいですか?

4

1 に答える 1

5

次のような方法のいずれかをdrawInRect:withAttributes:使用し、属性付きの文字列属性を使用して行の切り捨てスタイルを設定する必要があります。


試す:

NSMutableParagraphStyle *ps = [[NSMutableParagraphStyle alloc] init];
[ps setLineBreakMode:NSLineBreakByTruncatingTail];
[attributes setObject:ps forKey:NSParagraphStyleAttributeName];
于 2013-11-01T08:19:59.120 に答える