您好,登錄后才能下訂單哦!
可以將UIView對象的位置及尺寸變化處理成動畫效果
基本的動畫處理方式
//標識動畫的開始位置 + (void)beginAnimations:(NSString *)animationID context:(void *)context //標識動畫的結束位置,并開始動畫 + (void)commitAnimations //設置動畫執行時間,單位為秒 + (void)setAnimationDuration:(NSTimeInterval)duration //動畫重復次數,默認為1 + (void)setAnimationRepeatCount:(float)repeatCount
如:通過改變btn的大小使用動畫處理
CGRect frame = self.btn.frame; frame.size.width *= 1.2; frame.size.height *= 1.2; [UIView beginAnimations:@"btn" context:nil]; [UIView setAnimationDuration:0.5]; self.btn.frame = frame; [UIView commitAnimations];
block方式的動畫處理
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delayoptions:(UIViewAnimationOptions)options animations:(void (^)(void))animationscompletion:(void (^)(BOOL finished))completion
如:
CGRect frame = self.btn.frame; frame.size.width *= 1.2; frame.size.height *= 1.2; [UIView animateWithDuration:0.5 animations:^{ self.btn.frame = frame; }];
動畫處理中使用形變屬性
動畫處理中使用形變屬性是一個非常好的做法
基于自身初始形變值進行形變:
//位置形變 CGAffineTransform CGAffineTransformMakeTranslation ( CGFloat tx, CGFloat ty ); //尺寸形變 CGAffineTransform CGAffineTransformMakeScale ( CGFloat sx, CGFloat sy ); //旋轉形變 CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle );
基于指定形變值進行形變:
//位置形變 CGAffineTransform CGAffineTransformTranslate ( CGAffineTransform t, CGFloat tx,CGFloat ty ); //尺寸形變 CGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx,CGFloat sy ); //旋轉形變 CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );
如:
CGAffineTransform transform = CGAffineTransformScale(self.btn.transform, 1.2, 1.2); [UIView beginAnimations:@"btn" context:nil]; [UIView setAnimationDuration:0.5]; self.btn.transform = transform; [UIView commitAnimations];
形變原始值常量:
const CGAffineTransform CGAffineTransformIdentity;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。