首页 > setNeedsDisplay不调用drawRect的问题

setNeedsDisplay不调用drawRect的问题

我自建了一个View,然后希望手动调用drawRect方法,所以在需要调用该方法的地方加了setNeedsDisplay方法,但是他并没有调用drawRect方法,求大神答疑!

首先,我在这个接受的通知中调用了setNeedsDisplay方法:

其次,我重写了drawRect方法:

问题在于,我通知接受到了,也执行到setNeedsDisplay这一步了,但是却没有调用drawRect。请大神答疑啊!


需要确认下通知是否是在主线程里面收到的。如果这里的通知不是在主线程里面收到的,那么更新界面的操作可能无效或有延迟。记住:更新界面的操作要放到主线程里面

另外,感觉你这里drawRect:方法可能有点使用不当。当你的子类需要自己使用Core Graphics或者Quartz来绘制内容时才需要考虑重载drawRect:方法。如果你的子类只是用subView或subLayer等方式来显示内容的情况下,就没有必要重载drawRect:方法了。


想要立即执行绘制操作应该调用 displayIfNeeded

【热门文章】
【热门文章】