自定義modal動畫

2021-12-29 23:06:00 字數 2345 閱讀 3385

在很多場景中,我們都需要實現各種動畫,這回我們來嘗試搞一下控制器間跳轉的modal動畫。

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event

上面是系統提供的動畫的樣式,但是系統提供的動畫有時候滿足不了我們的需求,所以我們就要自定義動畫了,我們接下來,就重點的來說一下自定義動畫這一塊的內容。

準備工作:我之前寫過的單例:一行**搞定單例

以及一些座標的擴充套件,這裡我們直接呼叫一下:

zytransition.h(單例)

#import "singleton.h"

@inte***ce zytransition : nsobject

singletonh(transition)

@endzytransition.m#import "zytransition.h"

#import "zyanimatedtransitioning.h"

#import "zypresentationcontroller.h"

@implementation zytransition

singletonm(transition)

- (uipresentationcontroller *)presentationcontrollerforpresentedviewcontroller:(uiviewcontroller *)presented presentin**iewcontroller:(uiviewcontroller *)presenting sourceviewcontroller:(uiviewcontroller *)source

- (nullable id )animationcontrollerforpresentedcontroller:(uiviewcontroller *)presented presentingcontroller:(uiviewcontroller *)presenting sourcecontroller:(uiviewcontroller *)source

- (nullable id )animationcontrollerfordismissedcontroller:(uiviewcontroller *)dismissed

zyanimatedtransitioning.h (負責動畫)@inte***ce zyanimatedtransitioning : nsobject

@property(nonatomic,assign)bool presented;

@endzyanimatedtransitioning.mconst nstimeinterval duraton = 0.5;

@implementation zyanimatedtransitioning

- (nstimeinterval)transitionduration:(nullable id )transitioncontext

- (void)animatetransition:(id )transitioncontext

completion:^(bool finished) ];

}else

completion:^(bool finished) ];

}}@end搞乙個zypresentationcontroller

.h@inte***ce zypresentationcontroller : uipresentationcontroller.m

@implementation zypresentationcontroller

- (void)presentationtransitionwillbegin

- (void)presentationtransitiondidend:(bool)completed

- (void)dismissaltransitionwillbegin

- (void)dismissaltransitiondidend:(bool)completed

@end

這樣的話,我們外面用起來就非常簡單了:

#import "viewcontroller.h"

#import "zysecondviewcontroller.h"

#import "zytransition.h"

@inte***ce viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event

@end外面只需要跟平時一樣,然後設定顯示的樣式為自定義,然後制定**,就能實現modal的自定義動畫效果了。

自定義動畫

在製作自定義動畫時,有以下八個樣式可供選擇 animation name 動畫名稱 元素所應用的動畫名稱,必須與規則 keyframes 配合使用,因為動畫名稱由 keyframes 定義。animation duration 動畫時間 設定物件動畫的持續時間 animation timing fu...

CustomAnim自定義動畫

android只提供了4種基本動畫效果,除了可以疊加效果外,我們還可以進行自定義動畫。mainactivity.class不變 package com.customanim.customanim import android.os.bundle import android.view.view pu...

自定義動畫效果

demotitle charset utf 8 src bootstrap js jquery.min.js script div1 style head animateh2 params,speed easing fn p 用於建立自定義動畫的函式。這個函式的關鍵在於指定動畫形式及結果樣式屬性物件...