iPhone SDK: How to trigger drawRect on UIView subc

2019-01-18 10:24发布

I am subclassing a UIView and overwrite the drawRect method. I'm noticing that the view's drawrect is only being called when the view first loads. After that it is never called again. How to I make sure it gets called after an orientation change? I've tried calling setNeedsDisplay on the view before and after the rotation and that doesn't do it.

3条回答
迷人小祖宗
2楼-- · 2019-01-18 10:28

This was a bug related to something completely different. setNeedsDisplay does indeed cause drawRect to be called.

查看更多
女痞
3楼-- · 2019-01-18 10:41

to answer this and the other 94,000 similiar questions about view rotation/drawrect funkiness,

-(id)initWithFrame:(CGRect)frame
{
    if(self=[super initWithFrame:frame]) {
        self.autoresizesSubviews=YES;
        self.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
    }
    return self;
}
查看更多
4楼-- · 2019-01-18 10:51
[myView setContentMode:UIViewContentModeRedraw];

You can set this in IB as well (i.e., set mode to "redraw")

查看更多
登录 后发表回答