我正在使用從屏幕頂部刪除UImages的降雪示例代碼。我想在UIImageview上檢測Touch並更新標籤。如果我在IBOutlet中創建單個UIImageView並將其連接到觸摸事件,則標籤會正確更新。但是當我嘗試將它應用於下降的UIImageView時,它不起作用。以下是我迄今爲止:UITouch動畫UIImage事件
- (void)viewDidLoad {
[super viewDidLoad];
score = 0;
self.view.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0];
flakeImage = [UIImage imageNamed:@"flake.png"];
[NSTimer scheduledTimerWithTimeInterval:(0.5) target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
- (void)onTimer
{
flakeView = [[UIImageView alloc] initWithImage:flakeImage];
flakeView.opaque = YES;
flakeView.userInteractionEnabled = YES;
flakeView.multipleTouchEnabled = YES;
int startX = round(random() % 320);
int endX = round(random() % 320);
double scale = 1/round(random() % 100) + 1.0;
double speed = 1/round(random() % 100) + 1.0;
flakeView.frame = CGRectMake(startX, -100.0, 25.0 * scale, 25.0 * scale);
[self.view addSubview:flakeView];
[self.view bringSubviewToFront:flakeView];
[UIView beginAnimations:nil context:flakeView];
[UIView setAnimationDuration:5 * speed];
flakeView.frame = CGRectMake(endX, 500.0, 25.0 * scale, 25.0 * scale);
[UIView setAnimationDidStopSelector:@selector(onAnimationComplete:finished:context:)];
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch view] == flakeView)
{
NSLog(@"tag %@",touch);
score = score + 1;
lbl1.text = [NSString stringWithFormat:@"%i", score];
}
}
這裏是你的問題的解決方案.. http://stackoverflow.com/questions/6852020/typing-while-animation-uitextview/6852092#6852092 –