UIView動(dòng)畫傳參

- (void)viewDidLoad {

[super viewDidLoad];

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 20, 30,30)];

view.backgroundColor= [UIColor orangeColor];

[self.view addSubview:view];

//__bridge橋接因?yàn)閏ontext參數(shù)是void*類型,而view是UIView類型,不匹配,所以使用__bridge橋接進(jìn)行類型匹配

[UIView beginAnimations:nil context:(__bridgevoid*)(view)];

[UIView setAnimationDuration:2];

//設(shè)置代理

[UIView setAnimationDelegate:self];

//綁定方法

[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];

view.frame=CGRectMake(200, 200, 50, 50);

[UIView commitAnimations];

}

//自己寫的方法不能進(jìn)行傳參

//-(void)change:(UIView *)view

//系統(tǒng)提示的方法沒有context這個(gè)參數(shù),所以也不能傳參

//-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag

//這個(gè)方法是在setAnimationDidStopSelector這個(gè)方法定義的時(shí)候給的,系統(tǒng)把它注釋了,需要傳參數(shù)時(shí)把它復(fù)制出來用就可以了

- (void)animationDidStop:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context {

//把參數(shù)context轉(zhuǎn)換為UIView類型的對(duì)象

UIView *view = (__bridgeUIView*)context;

// NSLog(@"view");

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:2];

view.backgroundColor= [UIColor blueColor];

[UIView commitAnimations];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容