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 很长,那么它只会被剪裁以适合指定的矩形。如何适当地添加“...”?

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 回答