是否有其他方式显示对象/按钮/等等,例如3秒,而不是NSTimer? 我可以使用动画来做到这一点吗?
答案 0 :(得分:5)
您可以使用-performSelector:withObject:afterDelay:
,但它在内部使用计时器。
[theLabel performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:3];
您不能将-setHidden:
与此方法一起使用,因为1
不是对象,但您可以使用NSInvocation
。
NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:[theLabel methodSignatureForSelector:@selector(setHidden:)]];
[invoc setTarget:theLabel];
[invoc setSelector:@selector(setHidden:)];
BOOL yes = YES;
[invoc setArgument:&yes atIndex:2];
[invoc performSelector:@selector(invoke) withObject:nil afterDelay:3];
答案 1 :(得分:2)
你可以尝试:
[UIVIew beginAnimations:nil context:nil];
[UIView setAnimationDelay:3];
[UIView setAnimationDuration:0.1]; //or lower than 0.1
button.hidden = YES;
[UIView commitAnimations];
马
答案 2 :(得分:1)
假设您有一个名为myImageView的UIImageView:在您的.h中。文件
IBOutlet UIImageView *myImageView;
在.m文件中创建一个隐藏对象的方法:
-(void)hideMyImageView {
myImageView.hidden = TRUE;
}
然后当你想要隐藏对象时使用它:
[self performSelector:@selector(hideMyImageView) withObject:nil afterDelay:3];
要重新显示对象,请使用:
myImageView.hidden = FALSE;