Iphone 在布局子视图中调用setNeedsDisplay?
考虑在Iphone 在布局子视图中调用setNeedsDisplay?,iphone,ios,uiview,drawrect,layoutsubviews,Iphone,Ios,Uiview,Drawrect,Layoutsubviews,考虑在drawRect:中绘制的具有自定义背景的视图。如果视图大小改变,则需要重新绘制背景 这是个坏主意吗 - (void) layoutSubviews { [super layoutSubviews]; [self setNeedsDisplay]; } 如果是,考虑到我无法控制谁更改视图的大小,还有什么更好的选择呢?不要这样做,这是没有必要的。将视图的contentMode设置为UIViewContentModeRedraw: UIViewContentModeRedra
drawRect:
中绘制的具有自定义背景的视图。如果视图大小改变,则需要重新绘制背景
这是个坏主意吗
- (void) layoutSubviews
{
[super layoutSubviews];
[self setNeedsDisplay];
}
如果是,考虑到我无法控制谁更改视图的大小,还有什么更好的选择呢?不要这样做,这是没有必要的。将视图的
contentMode
设置为UIViewContentModeRedraw
:
UIViewContentModeRedraw
通过调用setNeedsDisplay方法,在边界更改时重新显示视图。
在iOS 2.0及更高版本中提供。
在UIView.h中声明
这将达到同样的效果。+1教我一些新东西。而且,它似乎起作用了!:)请注意,在
layoutSubviews
中发送setNeedsDisplay
也可以,如果您只需要在一些大小更改上重新绘制,您可能需要这样做。请告诉我在哪里添加一行代码来设置contentMode
是在init:
,layoutSubviews()
还是?因为我已经在init:
中添加了它,但它对我不起作用。@SunilRao无论您在哪里创建视图都应该可以