2012-02-24 62 views
0

我有一个子类UIViewUILabel与作为子视图添加到视图。在layoutSubviews方法计算UILabel的位置和高度。我的问题是,当UILabel的文本改变时,应该重新计算这个高度。文本被插入到UIViewController的标签中,所以视图不知道这是什么时候发生的。如何在UILabel中的文本更改时重画UIView?

回答

1

你也可以继承UILabel覆盖setText:这样的:

@implementation MyLabel 

- (void)setText:(NSString *)text { 
    [super setText:text]; 
    [self.superview setNeedsLayout]; 
} 
+0

的似乎并不作为一个非常灵活的解决方案。事实上,它不仅仅是一个我需要重绘的UILabel - 也就是当它的图像被替换时UIImageView的大小。 – dhrm 2012-02-25 08:24:14

+0

“UILabel”和“UIImageView”都没有选项可以在内容更改时自动调整其大小。你必须告诉它调整大小。你可以从改变内容的代码(可能是很多地方)来完成,也可以创建子类。 – 2012-02-25 08:38:05

相关问题