setNeedsDisplay不调用drawRect的问题
我自建了一个View,然后希望手动调用drawRect方法,所以在需要调用该方法的地方加了setNeedsDisplay方法,但是他并没有调用drawRect方法,求大神答疑!
首先,我在这个接受的通知中调用了setNeedsDisplay方法:
其次,我重写了drawRect方法:
问题在于,我通知接受到了,也执行到setNeedsDisplay这一步了,但是却没有调用drawRect。请大神答疑啊!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
想要立即执行绘制操作应该调用
displayIfNeeded
。还有种可能是View的frame设置不当,drawRect就无法调用。
需要确认下通知是否是在主线程里面收到的。如果这里的通知不是在主线程里面收到的,那么更新界面的操作可能无效或有延迟。记住:更新界面的操作要放到主线程里面。
另外,感觉你这里drawRect:方法可能有点使用不当。当你的子类需要自己使用Core Graphics或者Quartz来绘制内容时才需要考虑重载drawRect:方法。如果你的子类只是用subView或subLayer等方式来显示内容的情况下,就没有必要重载drawRect:方法了。