iPhone SDK: How to trigger drawRect on UIView subclass after orientation change?

给你一囗甜甜゛ 提交于 2019-11-27 03:10:45

问题


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.


回答1:


[myView setContentMode:UIViewContentModeRedraw];

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




回答2:


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




回答3:


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;
}


来源:https://stackoverflow.com/questions/2526162/iphone-sdk-how-to-trigger-drawrect-on-uiview-subclass-after-orientation-change

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!