我有一个应用程序,可以获取日历事件并向用户显示数据。我在试着更新标签的时候有一些奇怪的行为。
我可以很好地获取日历数据,但当完成时,我的问题是,根据NSLog,我的label.text属性已经改变了,但是在重新绘制视图之前还有4-8秒的时间。
因此,我试图检测标签何时被重绘,而不是当它的.text属性发生更改时,以便在标签中填充数据的同时隐藏一个进度视图。
在E 221E 122E 122之后,标签的E 223 .text E 127属性已更改--不工作。E 228
所以,除非我完全忽略了关于使用setNeedsDisplay的一些东西(我只理解下一次重绘的更新),否则我的问题是,如何检测UILabel和/或UIView重绘自己的时间?
我的应用程序是如何安装的:

我被困在这上面已经有三个星期了。
发布于 2013-01-31 01:43:56
确保在主线程上调用了setNeedsDisplay,例如,使用performSelectorOnMainThread:withObject:waitUntilDone::
[view performSelectorOnMainThread:@selector(setNeedsDisplay)
withObject:nil
waitUntilDone:NO];发布于 2013-01-31 01:53:14
引用苹果发展文件:
在下一个绘图周期之前,视图实际上不会重新绘制,此时将更新所有失效视图。
也许您的主线程被其他事情阻塞了,例如处理许多复杂的计算。
例:
- (void)testMethod
{
myLabel.mytext = @"aaaa";
[myLabel setNeedsDisplay];
// some complex calculations
// the quickest , it will run finish the method then redraw.
}https://stackoverflow.com/questions/14617051
复制相似问题