有延迟后设置属性的方法吗?如:
// Compiler hates this
[self performSelector:@selector(imageView.image) withObject:[UIImage imageNamed:newImage] afterDelay:0.5];
或者我是否必须创建一个新方法来调用属性的设置?以上看起来很简单。
答案 0 :(得分:6)
是,名为image
的媒体资源的设置者的default名称为setImage
。
[imageView performSelector:@selector(setImage:) withObject:[UIImage imageNamed:newImage] afterDelay:0.5];
当你没有设置setter方法时,它将生成一个前缀为set
的方法,然后使用驼峰方法,它将接受其类型的参数。
实施例。
@property(assign) id object;
//becomes
-(id)object {...} // getter
-(void)setObject:(id)inObject {...} //setter
答案 1 :(得分:5)
或者,使用dispatch_after
。如果您键入dispatch_after
并要求代码完成,您将获得三行样板代码以及将您的实际代码放在一个块中的位置。在该块中,imageView.image=
是合法的。不要忘记将默认延迟时间从2秒更改(长时间延迟!)。