在layoutSubviews中调用setNeedsDisplay?

时间:2012-11-17 21:07:16

标签: iphone ios uiview drawrect layoutsubviews

考虑使用drawRect:中绘制的自定义背景的视图。如果视图更改大小,则需要重新绘制背景。

这是个坏主意吗?

- (void) layoutSubviews
{
    [super layoutSubviews];
    [self setNeedsDisplay];
}

如果是,考虑到我无法控制谁更改视图的大小,那么什么是更好的选择呢?

1 个答案:

答案 0 :(得分:11)

不要这样做,没有必要。将视图的contentMode设置为UIViewContentModeRedraw

  

UIViewContentModeRedraw

     

通过调用setNeedsDisplay方法在边界更改时重新显示视图。   适用于iOS 2.0及更高版本。   在UIView.h中声明。

这将达到同样的效果。