iOS pop動畫之衰減動畫的基本使用

2022-08-19 04:03:09 字數 1642 閱讀 9417

衰減動畫

- (void)viewdidload {

[super viewdidload];

[self initcirclebtn];

- (void)initcirclebtn {

// 例項化手勢,並最終將手勢新增到圓形按鈕上

uipangesturerecognizer *pan = [[uipangesturerecognizer alloc]initwithtarget:self action:@selector(handlepan:)];

// 例項化圓形按鈕

uibutton *circlebtn = [[uibutton alloc]init];

circlebtn.bounds = cgrectmake(0, 0, 100, 100);

circlebtn.center = self.view.center;

circlebtn.backgroundcolor = [uicolor redcolor];

circlebtn.layer.cornerradius = cgrectgetwidth(circlebtn.frame) / 2;

[circlebtn addgesturerecognizer:pan];

[circlebtn addtarget:self action:@selector(handledown:) forcontrolevents:uicontroleventtouchdown];

[self.view addsubview:circlebtn];

- (void)handlepan:(uipangesturerecognizer *)recognizer {

cgpoint translation = [recognizer translationinview:self.view];

recognizer.view.center = cgpointmake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);

[recognizer settranslation:cgpointmake(0, 0) inview:self.view];// 這句比較重要,因為handlepan:會持續呼叫,如果不把上一次呼叫該方法產生的位移清零,按鈕會移動得很快

// 鬆手時,啟動衰減動畫

if (recognizer.state == uigesturerecognizerstateended) {

cgpoint velocity = [recognizer velocityinview:self.view]; // 獲取鬆手時,手勢在控制器view的速度

popdecayanimation *popanimation = [popdecayanimation animationwithpropertynamed:kpoplayerposition]; // 例項化衰減動畫,該衰減動畫作用於position

[popanimation setvelocity:[nsvalue valuewithcgpoint:velocity]]; // 設定衰減動畫的初始速度

[recognizer.view pop_addanimation:popanimation forkey:@"suibian"];// 新增衰減動畫到圓形按鈕

過渡動畫transition Css動畫基礎

語法 transition transition property transition duration transition timing function transition delay transition property 規定設定過渡效果的css屬性的名稱 transition dur...

動畫之UIView動畫

uiview有三種型別的動畫 它是對uiview的屬性進行動畫的一種方法,能進行動畫顯示的動畫包括 位置和大小 bounds frame center 背景與透明 backgroundcolor alpha 轉換 transform 它包括一種特殊很炫的動畫形式 彈簧動畫usingspringwit...

動畫特效之轉場動畫

首先新建乙個類,然後引入到專案中,在viewcontroller中匯入新建的類,實現方法跳轉到新建的類裡面,可以看到相應的效果 import viewcontroller.h typedef enum directiondirection inte ce viewcontroller end imp...