dug*_*gla 1 cocoa-touch uiview drawrect
我正在为iPhone做一个科学的可视化应用程序.UIView子类会定期从网络接收一些必须通过覆盖的drawRect:方法呈现的数据.
我的挑战是没有办法向Cocoa-Touch表明这个数据已经到达 - 或者已经改变 - 除了[myView setNeedsDisplay]之外,除了对UIView边界的改变之外被忽略.我试图隐藏和取消隐藏.Nuthin'.
疯狂地,因为我所做的只是改变了UIView [myView setNeedsDisplay]的一些内部状态.Cocoa-Touch完全看不到这种变化.根据Cocoa-Touch的说法,这种变化不是重写的标准之一 - 因此我的UIView坐在那里,没有改变.
这非常,非常非常令人沮丧.我在这里撞墙了.
有人可以建议一个技巧,技巧,黑客,这将促使我的UIView重新渲染.
干杯,道格
[myView setNeedsDisplay]应该导致在下次返回运行循环时drawRect:被发送myView并且myView可见.如果更改边界导致视图重绘(myView.contentMode是UIViewContentModeRedraw),那么setNeedsDisplay必须正常工作,因为这是边界更改发出重绘信号的方式.有关详细信息,请参阅UIView类参考.
是否drawRect:在第一次显示视图时调用?如果没有,它可能会拼写错误,在子类中重写,甚至在错误的对象上重写.
视图是否可见并在屏幕上显示?如果它不在屏幕上,则不会被绘制.
控件是否返回事件循环?drawRect:如果您的应用程序繁忙,则不会调用.