iOS常用UI控制元件屬性及簡單動畫
阿新 • • 發佈:2019-02-11
-通過center修改位置
-center是CGPoint型別,是view正中間的點
-通過frame修改大小
- 通過frame修改大小時左上角原點不動
-通過bounds修改大小
- bounds 和 frame 都是CGRect的型別
- bounds 預設的原點是 0,0
- 通過bounds修改大小時中心點不動
- center只能修改位置,bounds只能修改大小,frame既能修改位置也能修改大小
-通過transform修改位置(平移)
- CGAffineTransformMakeTranslation(X偏移量, Y偏移量);
- CGAffineTransformTranslate(在某個transform的基礎上-一般為自身
-通過transform修改大小(縮放)
- CGAffineTransformMakeScale(寬縮放的倍數, 高縮放的倍數);
- CGAffineTransformScale(在某個transform的基礎上-一般為自身, 寬縮放的倍數, 高縮放的倍數);
-通過transform進行旋轉(旋轉)
- CGAffineTransformMakeRotation(旋轉的弧度);
- CGAffineTransformRotate(在某個transform的基礎上-一般為自身, 旋轉的弧度);
-恢復transform形變
- 在發生形變的時候蘋果推薦使用transform.
- 形變的時候frame發生變化,bounds不發生變化.
- CGAffineTransformIdentity的含義?
- 最原始的transform
-頭尾式動畫(瞭解)
- [UIView beginAnimations:nil context:nil];
- 準備開始動畫
- [UIView setAnimationDuration:5];
- 設定時間
- [UIView commitAnimations];
- 提交動畫(真正開始做動畫)
-塊動畫
+(void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations
completion:(void (^__nullable)(BOOL finished))completion;+(void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations;+(void)animateWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
usingSpringWithDamping:(CGFloat)dampingRatio
initialSpringVelocity:(CGFloat)velocity
options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^__nullable)(BOOL finished))completion;- duration : 動畫時間
- delay : 延遲時間
- dampingRatio : 阻尼係數(彈性) 越小越彈
- velocity : 速率
- options : 選項
- animations : 做動畫的程式碼塊
- completion : 動畫完成的程式碼塊 “回撥”
-序列幀動畫實現
- 方法1
- -[UIImage animatedImageWithImages:動畫陣列 duration:持續時間]; // 可以獲取一個能做動畫的UIImage物件
- 方法2
- self.imageView.animationImages = array; // 裝圖片的陣列(需要做動畫的圖片陣列)
- self.imageView.animationDuration = 2; // 動畫時間
- self.imageView.animationRepeatCount = 1; // 重複次數 0 表示重複
- [self.imageView startAnimating]; // 開始序列幀動畫