【问题标题】: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 之前刷新屏幕。

如何达到我想要的效果?

提前致谢!

【问题讨论】:

    标签: iphone objective-c ios xcode sleep


    【解决方案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
    • 关于我不理解的观点的评论
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多