iOS:UIView的block函数实现转场动画---双视图
生活随笔
收集整理的這篇文章主要介紹了
iOS:UIView的block函数实现转场动画---双视图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用UIView動畫函數實現轉場動畫——雙視圖 + (void)transitionFromView:(UIView *)fromView?toView:(UIView *)toView?duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void?(^)(BOOL?finished))completion; ? 參數說明: –duration:動畫的持續時間 –options:轉場動畫的類型 –animations:將改變視圖屬性的代碼放在這個block中 –completion:動畫結束后,會自動調用這個block ?
方法調用完畢后,相當于執行了下面兩句代碼:
//?添加toView到父視圖
[fromView.superview?addSubview:toView];
//?把fromView從父視圖中移除
[fromView?removeFromSuperview];
?
具體實例如下:
實現功能:創建兩個子視圖view1和view2,分別設置不同的背景顏色,并把它們添加到父視圖中,然后創建觸摸點擊手勢,
每次觸摸屏幕時,兩個視圖交替切換顯示,即實現轉場動畫。
代碼如下:
//聲明屬性
#import "ViewController.h"@interface ViewController () @property (strong,nonatomic)UIView *view1; @property (strong,nonatomic)UIView *view2; @end//初始化,創建兩個子視圖,同時創建觸摸點擊手勢并添加手勢事件
- (void)viewDidLoad {[super viewDidLoad];//初始化self.view1 = [[UIView alloc]initWithFrame:self.view.frame];self.view1.backgroundColor = [UIColor redColor]; //view1背景色為紅色[self.view addSubview:self.view1];self.view2 = [[UIView alloc]initWithFrame:self.view.frame];self.view2.backgroundColor = [UIColor greenColor];//view2背景色為綠色[self.view addSubview:self.view2];//添加tap手勢UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];tap.numberOfTapsRequired = 1;tap.numberOfTouchesRequired = 1;[self.view addGestureRecognizer:tap]; }//處理觸摸點擊手勢事件,在block函數中實現雙視圖轉場動畫
#pragma mark -tap手勢事件 -(void)tap:(UITapGestureRecognizer *)sender {//通過判斷視圖的父視圖是否為空,可以知道當前視圖是不是正在顯示if (self.view2.superview == nil){//通過block函數切換子視圖(設置動畫過渡類型為翻書效果)[UIView transitionFromView:self.view1 toView:self.view2 duration:1.0f options:UIViewAnimationOptionTransitionCurlUp completion:nil];;}else{//通過block函數切換子視圖(設置動畫過渡類型為翻書效果)[UIView transitionFromView:self.view2 toView:self.view1 duration:1.0f options:UIViewAnimationOptionTransitionCurlUp completion:nil];} }?
演示結果如下:
開始時:
點擊后:
?
動畫結束后:
?
還可以接著點擊,會變為綠色視圖,就不一一演示了。
?
轉載于:https://www.cnblogs.com/XYQ-208910/p/4886689.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的iOS:UIView的block函数实现转场动画---双视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推送通知(二)远程通知
- 下一篇: MySql 插入数据中文乱码