如何在3秒后显示图像?
答案 0 :(得分:4)
您可以使用:
[self performSelector: withObject: afterDelay: ]
答案 1 :(得分:3)
我非常喜欢使用GCD(iOS 4+),因为您可以使用内联块简化代码。
在您的情况下,您应该将图像设置为隐藏在Interface Builder中,然后创建一个IBOutlet,其中包含与您班级中的ivar的连接。
然后你可以在viewDidLoad
或类似的地方运行它:
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 3.0);
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
yourImage.hidden = NO;
});
答案 2 :(得分:0)
这假设您从主线程调用performSelector:withObject:afterDelay,并且最初隐藏了UIImageView。
//assumes theImageView.hidden = YES
[self performSelector:@selector(showImage:) withObject:theImageView afterDelay:yourTimeInterval];
-(void)showImage:(UIImageView*)anImageView {
anImageView.hidden = NO;
}
从主线程调用performSelector非常重要,因为延迟后调用的选择器将在同一个线程上运行,并且您不希望从主线程以外的任何其他位置更新UI作为一般规则。
答案 3 :(得分:-1)
我有一段时间没有使用过XCode,但我会为你做一个刺...
在Interface Builder中将图像的可见性设置为隐藏
当你的应用启动时,在init fxn中将一些全局变量设置为当前时间
在UI的主控制循环中,检查该全局变量是否包含超过3秒前的时间,如果是,请将该图像的可见性参数更改为显示。
最好我真的可以说没有真正看一眼,这是不可能的。
祝你好运!