用户交互后刷新屏幕

Posted

技术标签:

【中文标题】用户交互后刷新屏幕【英文标题】:Refresh screen after user interaction 【发布时间】:2012-11-29 10:24:18 【问题描述】:

我正在用 xcode 为 iO 编写一个应用程序。我有这样的代码:

- (void)buttonAction:(UIButton*)sender

    UIView *figure = (UIView *) [figures objectAtIndex:sender.tag];

    [figure.layer setBorderWidth:2.0f];
    [figure.layer setBorderColor: [UIColor greenColor].CGColor];
    sleep(1);
    [self cleanScreen];



- (void) cleanScreen 

    //Some code to hide all view objects


我希望在 cleanScreen 函数删除项目之前,边框颜色和宽度的更改会在屏幕上反映 1 秒钟。但碰巧这些变化没有反映,花了一秒钟的时间元素都被删除了。

我想在调用 cleanScreen 之前刷新屏幕。

如何达到我想要的效果?

提前致谢!

【问题讨论】:

【参考方案1】:

代替:

sleep(1);

使用:

[self performSelector:@selector(cleanScreen) withObject:nil afterDelay:1];

sleep() 冻结整个应用程序

【讨论】:

不错的解决方案!但是,如果我的函数有一个参数(例如整数),我怎么能做同样的事情。 [self performSelector:@selector(cleanScreen:1) withObject:nil afterDelay:1];不工作。或者例如,如果我想延迟调用其他视图控制器: [self.view addSubview:self.bMar.view]; 如果你的函数只有一个参数,你可以在withObject: 参数中发送它,而不是nil 创建一个带有值的NSNumber 关于我不理解的观点的评论

以上是关于用户交互后刷新屏幕的主要内容,如果未能解决你的问题,请参考以下文章

iOS闲置一段时间后执行操作(无用户交互)

msf后渗透之文件交互指令上传下载文件屏幕截图键盘记录创建账户音频录像和提权(上)

在 iOS 中检测不活动(无用户交互)以显示单独的屏幕,如覆盖

Ajax简介

Ajax

Ajax&Json —— Ajax