2012-06-18 65 views
0

我的目標是用動畫顯示subView,我已經實現了一個專用類來執行這種動畫,並且我已經從該類實例化並將其應用於我的子視圖動畫:動畫子類不能正確應用到我的視圖動畫

AnimationClass *ani = [[AnimationClass alloc] init];  
ani.type = AnimationClassTypeTransition; 
ani.direction = AnimationClassDirectionMoveUp; 

[self.masterView addSubview:self.detailImage withAnimation:ani]; 

一切去與平穩過渡的動畫精品,但是,我得到以下警告:

'UIView' may not respond to 'addSubview:withAnimation:' 

我如何重構上面的代碼來解決這一警告嗎? Thanx提前

編輯 masterView屬性UIView類型。它是這樣宣佈的:

@property (nonatomic, assign) UIView *masterView; 

並在.m中合成。

回答

1
#import <QuartzCore/QuartzCore.h> 

CATransition *transition = [CATransition animation]; 
transition.duration = 1.0; 
transition.type = kCATransitionPush; //choose your animation 
[newView.layer addAnimation:transition forKey:nil]; 
[self.view addSubview:newView]; 
+0

嗨,thanx爲您的答覆,實際上當我嘗試你的片段,我沒有更多的動畫,所以'subView'顯示速度非常快,沒有動畫,我試圖將持續時間值更改爲4和5秒,但沒有'沒有任何動畫效果,我也改變了過渡到'kCATransitionFromBottom'。 – Malloc

+0

試試這個: '[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1.0]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:newView cache:YES]; [self.navigationController.view addSubview:settingsView.view]; [UIView的commitAnimations];' 或 '[UIView的transitionWithView:containerView持續時間:0.5 選項:UIViewAnimationOptionTransitionCurlUp //改變到任何動畫你喜歡 動畫:^ {[containerView addSubview:子視圖]。 } 完成:無];' – Dhruv

1

如果您的代碼沒有崩潰運行,那麼你剛纔忘記您的addSubview:withAnimation:子類UIView。我想self.masterView的聲明你的方法是一個類型的子類UIView,其中有一個方法addSubview:withAnimation:,但還沒有宣佈這個方法在.h文件中,您的子類別爲UIView

+0

嗨,thanx你的回覆,請你解釋一下更多嗎? Thanx :) – Malloc

+0

self.masterView屬性的類型是什麼? – graver

+0

它是'UIView'類型的。 – Malloc