我已經看到了高和低的解決方案,我已經無處。點擊動畫圖像/按鈕
我想開發一個非常簡單的點擊,動畫和播放聲音的iOS應用程序。
所以我會有一個說農場的地圖,當我點擊羊時,它會動畫併產生一些噪音。我已經設法實現了這一點,它的一切都很好。
我的問題和疑問是能夠點擊一個已經有動畫的按鈕。
所以,當視圖加載我想有云按鈕從左至右在天空中移動向右慢慢地,我又已經使用此代碼
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidLoad];
[UIView animateWithDuration:8.5
delay:1.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut
animations:^{
cloudAnimate.center = CGPointMake(-100.0, 100.0);
}
completion:NULL];
}
但是,當此按鈕從動畫實現了這個從左到右,它們不是可點擊的,所以我想旋轉雲朵並播放聲音的接觸不起作用。我已經閱讀了一些其他帖子,說這是做不到的,但我有我的iPhone和iPad的應用程序負載這樣做,所以任何人都知道如何實現這一點?
任何幫助將不勝感激,因爲我拉我的頭髮。
在此先感謝。
編輯:
行,所以拜答案的組合下面我幾乎得到這個工作
所以我用這個來設定初始CGPoint:
- (void)viewDidLoad
{
[super viewDidLoad];
// Move UIView
cloudAnimate.center = CGPointMake(400.0, 100.0);
}
爲了使雲從左到右呈現動態,我使用的是與原本稍微調整過的代碼相同的代碼:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidLoad];
[UIView animateWithDuration:8.5
delay:1.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction
animations:^{
cloudAnimate.center = CGPointMake(100.0, 100.0);
}
completion:NULL];
}
而且現在不是IBAction爲我使用這個:
-(void) touchesBegan:(NSSet*) touches withEvent:(UIEvent *) event {
CGPoint point = [[touches anyObject] locationInView:self.view];
if([self.cloudAnimate.layer.presentationLayer hitTest:point]) {
SystemSoundID soundID;
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"Super_Mario_Bros_Mushroom" ofType:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef) [NSURL fileURLWithPath:soundFile], & soundID);
AudioServicesPlaySystemSound(soundID);
cloudAnimate.imageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"panda-png-chewing"],[UIImage imageNamed:@"panda-png-happy"],nil];
cloudAnimate.imageView.animationDuration = 0.2;
cloudAnimate.imageView.animationRepeatCount = 6;
[cloudAnimate.imageView startAnimating];
}
}
所以現在它幾乎正是我想要的,但如果你打的雲時,它是在其完成CGPoint(即使它會進行移動)應用程序崩潰。如果我在移動的時候碰到它,它會發出聲音和動畫。
任何人有任何建議,爲什麼這是?
嘗試UIViewAnimationOptionAllowUserInteraction選項 –
閱讀我對這個問題的回答(http://stackoverflow.com/questions/20367526/to-set-uianimation-and-touch-event-for-uiimageview/20367619#20367619),特別是編輯後的部分。 – rdelmar