Iphone 延迟语句执行目标c
我有以下代码,但不起作用Iphone 延迟语句执行目标c,iphone,objective-c,Iphone,Objective C,我有以下代码,但不起作用 [self performSelector:@selector([A1 setImage:[UIImage imageNamed:@"m1.10002.png"] forState:UIControlStateNormal]) withObject:A1 afterDelay:0.1]; 我如何在一段时间后执行以下语句 [A1 setImage:[UIImage imageNamed:[NSString stringWit
[self performSelector:@selector([A1 setImage:[UIImage imageNamed:@"m1.10002.png"] forState:UIControlStateNormal])
withObject:A1 afterDelay:0.1];
我如何在一段时间后执行以下语句
[A1 setImage:[UIImage imageNamed:[NSString stringWithFormat:@"m1.a0009.png"]] forState:UIControlStateNormal];
我想设置一系列的5个图像来执行一个小的动画效果。但我不确定这是怎么做到的
谢谢在您的代码中有这样一种方法:
- (void) blahBlahWhatever {
[A1 setImage:[UIImage imageNamed:[NSString stringWithFormat:@"m1.a0009.png"]] forState:UIControlStateNormal];
}
然后使用
[self performSelector:@selector(blahBlahWhatever) afterDelay:0.1];
叫它
如果要使用自定义的
NSString
调用该方法,只需允许NSString输入:
-(void) blahBlahWhatever:(NSString *)string {
[A1 setImage:[UIImage imageNamed:string] forState:UIControlStateNormal];
}
然后使用
NSString *fileString = @"m1.a0009.png"; // or whatever this might be
[self performSelector:@selector(blahBlahWhatever:) withObject:fileString afterDelay:0.1];
从代码中调用它。在代码中有如下方法:
- (void) blahBlahWhatever {
[A1 setImage:[UIImage imageNamed:[NSString stringWithFormat:@"m1.a0009.png"]] forState:UIControlStateNormal];
}
然后使用
[self performSelector:@selector(blahBlahWhatever) afterDelay:0.1];
叫它
如果要使用自定义的
NSString
调用该方法,只需允许NSString输入:
-(void) blahBlahWhatever:(NSString *)string {
[A1 setImage:[UIImage imageNamed:string] forState:UIControlStateNormal];
}
然后使用
NSString *fileString = @"m1.a0009.png"; // or whatever this might be
[self performSelector:@selector(blahBlahWhatever:) withObject:fileString afterDelay:0.1];
要从代码中调用它。您应该将剪接代码包装在一个方法中,然后在@Selector中调用此方法。您应该将剪接代码包装在一个方法中,然后在@Selector中调用此方法。我想您应该看看UIView的动画宽度:动画:完成: (我假设A1是一个按钮或类似的东西) 差不多
animate(UIButton b, int state, int last_state) {
if (state < last_state) {
float duration = 1.0 / 30.0;
[b animateWithDuration:1.0/30
animations: ^{ [UIImage imageNamed:[NSString stringWithFormat:@"m%d.a0009.png", state]]; }
completion: ^{ animate(b, state++, last_state); }];
}
}
animate(UIButton b,int state,int last_state){
如果(状态<最后状态){
浮动持续时间=1.0/30.0;
[b动画宽度:1.0/30
动画:^{[UIImage ImageName:[NSString stringWithFormat:@“m%d.a009.png”,state]];}
完成:^{animate(b,state++,last_state);}];
}
}
要设置从m0到m4的图像动画,请调用animate(A1、0、5)。您可能需要一组更好的参数等等(我也选择了30FPS,您可能需要10或20…或者将其作为参数)。我想您需要查看UIView的动画宽度:动画:完成: (我假设A1是一个按钮或类似的东西) 差不多
animate(UIButton b, int state, int last_state) {
if (state < last_state) {
float duration = 1.0 / 30.0;
[b animateWithDuration:1.0/30
animations: ^{ [UIImage imageNamed:[NSString stringWithFormat:@"m%d.a0009.png", state]]; }
completion: ^{ animate(b, state++, last_state); }];
}
}
animate(UIButton b,int state,int last_state){
如果(状态<最后状态){
浮动持续时间=1.0/30.0;
[b动画宽度:1.0/30
动画:^{[UIImage ImageName:[NSString stringWithFormat:@“m%d.a009.png”,state]];}
完成:^{animate(b,state++,last_state);}];
}
}
要设置从m0到m4的图像动画,请调用animate(A1、0、5)。您可能需要一组更好的参数等等(我也选择了30FPS,您可能需要10或20…或者将其作为参数)。谢谢,如果我想根据调用的位置对字符串进行不同的设置,那很容易。我马上给你一个更新的答案。我已经添加了另一个解决方案。最后一行代码仍然是错误的。它使用的是OP提供的代码,而不是您之前提供的
@选择器(blahBlahWhatever:)
。@seanny94我为您修复了@dreamlax的注释(我假设您只是将其隔开)。:pThanks,如果我想根据调用的位置设置不同的字符串,那很简单。我马上给你一个更新的答案。我已经添加了另一个解决方案。最后一行代码仍然是错误的。它使用的是OP提供的代码,而不是您之前提供的@选择器(blahBlahWhatever:)
。@seanny94我为您修复了@dreamlax的注释(我假设您只是将其隔开)。:P