我有一個UIImageView
這是一個動畫循環。我想檢測它是否已被觸摸,並打印出與NSLog
消息。這個想法是,如果它已經被觸摸,則執行另一個動畫,但是現在我無法檢測到它是否已經被觸摸了。用戶交互已啓用。下面是代碼:檢測是否移動了移動的UIImageView
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
UIView *touchedView = [touch view];
if (touchedView == imgSun) {
NSLog(@"Sun touched");
[self spinSun];
} else if (touchedView == imgBee) {
NSLog(@"Bee touched");
} else if (touchedView == imgClouds) {
NSLog(@"Clouds touched");
}
}
動畫方法:
-(void) beeBobbing
{
[UIView animateWithDuration:1.0f delay:0 options:(UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat) animations:^{
CGPoint bottomPoint = CGPointMake(215.0, 380.0);
imgBee.center = bottomPoint;
} completion:^(BOOL finished) {
}];
}
你是否繼承了UIImageView?因爲否則你不能訪問touchesBegan委託方法。另外,你爲什麼不簡單地使用UIGestureRecongizers? – Lefteris
另一種方法是使用自定義按鈕並將圖像作爲此按鈕的背景圖像,然後您可以輕鬆瞭解它是否被觸摸 – sujith1406
我對編程非常陌生,以前沒有使用過UIGestureRecognizers。使用觸摸開始beofre我決定這樣做。下面的答案似乎對我有用 – garethdn