接上篇UIView屬性篇,從這篇開始我們就開始進入 UIView 方法的旅途中了
首先從類方法開始,本篇就總結一下類方法
UIView 類方法 Class Methods
類方法基本上都是與動畫相關的
+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime relativeDuration:(double)frameDuration animations:(void (^)(void))animations
//指定一個關鍵幀的單個貞的時間和動畫,從IOS7開始使用
//這裡說一下參數,第一個frameStartTime其實是個倍數從0到1,假設一個動畫持續的時間是2秒
//設置frameStartTime為0.5,那麼後面設置的動畫,將會在整體動畫執行1秒後開始執行
//第二個參數frameDuration同第一個,是指動畫持續時間
//第三個是一個block對象,裡面就是你設置的所要執行的動畫,無參數和返回值
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//為當前視圖創建一個可以用於設置基本關鍵幀動畫的block對象,從IOS7開始使用
//這個方法可以與上一個方法結合使用
+ (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)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//增加了幾個參數,分別是delay動畫執行前的等待時間,options 動畫方式
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity
options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//在原來的基礎上又增加了兩個參數,實現了像彈簧一樣的動畫
//dampingRatio 這個參數是設置彈簧的阻尼比例
//velocity 這個是設置彈簧的最初速度
//從IOS7開始使用
+ (void)beginAnimations:(NSString *)animationID context:(void *)context
//開始指定的動畫,context附加的應用程序信息用來傳遞給動畫代理消息
+ (void)commitAnimations //結束一個動畫塊並開始當他在動畫塊外時。
//如果當前的動畫塊是最外層的動畫塊,當應用程序返回到循環運行時開始動畫塊。
動畫在一個獨立的線程中所有應用程序不會中斷。使用這個方法,多個動畫可以被實現。
查看setAnimationBeginsFromCurrentState:來了解如果開始一個動畫當另外一個動畫在播放的時候。
+ (Class)layerClass //返回一個用於為實例創建圖層的類
+ (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray *)views options:(UIViewAnimationOptions)options animations:(void (^)(void))parallelAnimations completion:(void (^)(BOOL finished))completion
//在一組視圖上執行指定的系統動畫,並可以並行自定義的動畫
//其中parallelAnimations就是與系統動畫並行的自定義動畫
+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation
//視圖轉換時不執行動畫,參數為block對象,來執行你要執行的代碼
+ (BOOL)areAnimationsEnabled //判斷視圖是否允許使用動畫
+ (BOOL)requiresConstraintBasedLayout
//返回視圖是否依賴基於約束的布局系統
對視圖動畫的設置
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState
//設置動畫在當前環境下是否開始播放
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve
//設置動畫塊中的動畫屬性變化的曲線。主要是階段性快慢的變化,比如先快後慢,先慢後快...
//動畫曲線是動畫運行過程中相對的速度。如果在動畫塊外調用這個方法將會無效
+ (void)setAnimationDelay:(NSTimeInterval)delay
//在動畫塊中設置動畫的延遲屬性(以秒為單位)
+ (void)setAnimationDelegate:(id)delegate
//設置動畫消息的代理。
+ (void)setAnimationWillStartSelector:(SEL)selector
//動畫將要開始時調用選擇器選擇的方法
//選擇器應該選擇的方法為- (void)animationDidStart:(NSString *)animationID context:(void *)context.
+ (void)setAnimationDidStopSelector:(SEL)selector
//動畫結束後調用選擇器選擇的方法
//選擇器應該選擇的方法為- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context.
+ (void)setAnimationDuration:(NSTimeInterval)duration
//設置動畫的持續時間
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
//設置動畫塊中的動畫效果是否自動重復播放。
+ (void)setAnimationRepeatCount:(float)repeatCount
//設置動畫重復的次數
+ (void)setAnimationsEnabled:(BOOL)enabled
//設置是否激活動畫
+ (void)setAnimationStartDate:(NSDate *)startTime
//設置動畫開始時間
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache
//為指定的視圖設置一個過渡,transition為過渡效果
//參數cache 如果是YES,那麼在開始和結束圖片視圖渲染一次並在動畫中創建幀;
否則,視圖將會在每一幀都渲染。例如緩存,你不需要在視圖轉變中不停的更新,
你只需要等到轉換完成再去更新視圖。
視圖過渡動畫
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//創建指定視圖的過渡動畫
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
//創建制定視圖之間轉換的過渡動畫
OK 以上就是UIView這個類的全部類方法。就到這裡
今天跟大家分享了UIView 的類方法,若有錯誤,歡迎指正。—— LC