首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测UIView/UILabel何时重新绘制自己?

检测UIView/UILabel何时重新绘制自己?
EN

Stack Overflow用户
提问于 2013-01-31 01:34:56
回答 2查看 696关注 0票数 2

我有一个应用程序,可以获取日历事件并向用户显示数据。我在试着更新标签的时候有一些奇怪的行为。

我可以很好地获取日历数据,但当完成时,我的问题是,根据NSLog,我的label.text属性已经改变了,但是在重新绘制视图之前还有4-8秒的时间。

因此,我试图检测标签何时被重绘,而不是当它的.text属性发生更改时,以便在标签中填充数据的同时隐藏一个进度视图。

E 221E 122E 122之后,标签的E 223 .text E 127属性已更改--不工作。E 228

所以,除非我完全忽略了关于使用setNeedsDisplay的一些东西(我只理解下一次重绘的更新),否则我的问题是,如何检测UILabel和/或UIView重绘自己的时间?

我的应用程序是如何安装的:

我被困在这上面已经有三个星期了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 01:43:56

确保在主线程上调用了setNeedsDisplay,例如,使用performSelectorOnMainThread:withObject:waitUntilDone:

代码语言:javascript
复制
[view performSelectorOnMainThread:@selector(setNeedsDisplay) 
                       withObject:nil 
                    waitUntilDone:NO];
票数 3
EN

Stack Overflow用户

发布于 2013-01-31 01:53:14

引用苹果发展文件:

在下一个绘图周期之前,视图实际上不会重新绘制,此时将更新所有失效视图。

也许您的主线程被其他事情阻塞了,例如处理许多复杂的计算。

例:

代码语言:javascript
复制
- (void)testMethod
{
    myLabel.mytext = @"aaaa";
    [myLabel setNeedsDisplay];
    // some complex calculations
    // the quickest ,  it will run finish the method then redraw.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14617051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档