0
我有一个子类UIView与UILabel与作为子视图添加到视图。在layoutSubviews方法计算UILabel的位置和高度。我的问题是,当UILabel的文本改变时,应该重新计算这个高度。文本被插入到UIViewController的标签中,所以视图不知道这是什么时候发生的。如何在UILabel中的文本更改时重画UIView?
我有一个子类UIView与UILabel与作为子视图添加到视图。在layoutSubviews方法计算UILabel的位置和高度。我的问题是,当UILabel的文本改变时,应该重新计算这个高度。文本被插入到UIViewController的标签中,所以视图不知道这是什么时候发生的。如何在UILabel中的文本更改时重画UIView?
你也可以继承UILabel
覆盖setText:
这样的:
@implementation MyLabel
- (void)setText:(NSString *)text {
[super setText:text];
[self.superview setNeedsLayout];
}
的似乎并不作为一个非常灵活的解决方案。事实上,它不仅仅是一个我需要重绘的UILabel - 也就是当它的图像被替换时UIImageView的大小。 – dhrm 2012-02-25 08:24:14
“UILabel”和“UIImageView”都没有选项可以在内容更改时自动调整其大小。你必须告诉它调整大小。你可以从改变内容的代码(可能是很多地方)来完成,也可以创建子类。 – 2012-02-25 08:38:05