ios 文字翻轉 iOS 連續翻轉動畫

2021-10-13 06:58:16 字數 1823 閱讀 8309

專案的任務,需要實現乙個類似於下圖的翻轉動畫,在翻轉的同時,還要進行改變。翻轉過去用時1秒,翻轉回來用時1秒,展示3秒

single.gif

-(void)starttransformanimation completion:^(bool finished) completion:^(bool finished) else{

[btn.topimage sd_setimagewithurl:[nsurl urlwithstring:((functionmodel*)self.imgarr[3]).icon]];

btn.topimage.tag = 1001;

後來產品提出需求:可配置執行動畫的按鈕,多個按鈕同時執行動畫

double.gif

上面的方法肯定是不行了,使用cakeyframeanimation來實現

* 翻轉動畫

- (void)layerrotation {

weakself(weakself)

for (int i=0; i<8; i++) {

custombtn *btn = [_banner viewwithtag:20+i];

[self addlayerrotationwithbtn:btn];

///第一次切換

dispatch_after(dispatch_time(dispatch_time_now,(int64_t)(1.0* nsec_per_sec)),dispatch_get_main_queue(),^{

for (int i=0; i<8; i++) {

custombtn *btn = [_banner viewwithtag:20+i];

[weakself changeimgwithbtn:btn];

///迴圈動畫

dispatch_after(dispatch_time(dispatch_time_now,(int64_t)(5.0* nsec_per_sec)),dispatch_get_main_queue(),^{

[weakself layerrotation];

動畫實現

- (void)addlayerrotationwithbtn:(custombtn *)btn {

cakeyframeanimation *keyanimation = [cakeyframeanimation animation];

// 旋轉角度, 其中的value表示影象旋轉的最終位置

keyanimation.values = [nsarray arraywithobjects:

[nsvalue valuewithcatransform3d:catransform3dmakerotation(0, 0,1,0)],

[nsvalue valuewithcatransform3d:catransform3dmakerotation((m_pi/2), 0,1,0)],

[nsvalue valuewithcatransform3d:catransform3dmakerotation(0, 0,1,0)],

[nsvalue valuewithcatransform3d:catransform3dmakerotation(0, 0,1,0)],

nil];

keyanimation.keytimes = @[@(0),@(0.2),@(0.4),@(1.0)];//每乙個的取值範圍是0-1

keyanimation.duration = 5.0 ;

keyanimation.repeatcount = 1;

[btn.topimage.layer addanimation:keyanimation forkey:@"transform"];

ios 文字翻轉 ios 一 翻轉動畫

專案的任務,需要實現乙個類似於下圖的翻轉動畫,在翻轉的同時,還要進行改變。目標動畫 最開始,直接使用uiview的動畫。很簡單 void viewanimation else completion bool finished void changeimg if imageview.tag 101 e...

iOS 字串翻轉

記錄一次面試題 i am a boy。翻轉成 boy。a am i 保留空格 import nsstring reverse.h implementation nsstring reverse 翻轉字串 return 待發展字串 nsstring reversestring return marra...

iOS中UIView翻轉效果實現

新建乙個view based模板工程,在viewcontroller檔案中新增下面的 即可實現翻轉效果 void viewdidload super viewdidload 需要翻轉的檢視 uiview parentview uiview alloc initwithframe cgrectmake...