激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - 實例講解iOS中的CATransition轉場動畫使用

實例講解iOS中的CATransition轉場動畫使用

2021-01-20 16:21iOS_成才錄 IOS

CATransition類為應用程序的轉場動畫提供了很多可控制參數,接下來我們就以幾個實例講解iOS中的CATransition轉場動畫使用,需要的朋友可以參考下

一、簡介
catransition是caanimation的子類,用于做轉場動畫
能夠為圖層提供移出屏幕和移入屏幕的動畫效果。ios比mac os x的轉場動畫效果少一點
如:uinavigationcontroller導航控制器就是通過catransition轉場動畫實現了將控制器的視圖推入屏幕的動畫效果

實例講解iOS中的CATransition轉場動畫使用

catransition頭文件
動畫屬性:
type:動畫過渡類型
subtype:動畫過渡方向
startprogress:動畫起點(在整體動畫的百分比)
endprogress:動畫終點(在整體動畫的百分比)
......

復制代碼 代碼如下:

#import <quatzcore/caanimation.h> 
catransition *mytransition=[catransition animation];//創建catransition 
mytransition.duration=0.3;//持續時長0.3秒 
mytransition.timingfunction=uiviewanimationcurveeaseinout;//計時函數,從頭到尾的流暢度 
mytransition.type=kcatransionpush;//動畫類型 
mytransition.subtype=kcatransitionfromleft;//子類型 
//要令一個轉場生效,組要將動畫添加到將要變為動畫視圖所附著的圖層。例如在兩個視圖控制器之間進行轉場,那就將動畫添加到窗口的圖層中: 
[[self.view.superview layer]addanimation:mytransition forkey:nil ]; 
//如果是將控制器內的子視圖轉場到另一個子視圖,就將動畫加入到視圖控制器的圖層。還有一種選擇,用視圖控制器內部的視圖作為替代,將你的子視圖作為主視圖的子圖層: 
 [ self.view.layer addanimation:mytransition forkey:nil ]; 
[ self.view addsubview:newview ]; 
[oldview removefromsuperview]; 
//如果你使用的是導航控制器,可以將動畫加到導航控制器的視圖圖層中。 
[ navigationcontroller.view.layer addanimation:mytransition forkey:nil  ]; 


轉場動畫過渡效果

 

實例講解iOS中的CATransition轉場動畫使用

二、view類自帶轉場動畫函數
1、單視圖

+(void)transitionwithview:(uiview*)view duration:(nstimeinterval)duration options:
(uiviewanimationoptions)options
animations:(void(^)(void))animations
completion:(void(^)(boolfinished))completion;
參數說明:
duration:動畫的持續時間
view:需要進行轉場動畫的視圖
options:轉場動畫的類型
animations:將改變視圖屬性的代碼放在這個block中
completion:動畫結束后,會自動調用這個block
2、雙視圖
+ (void)transitionfromview:(uiview*) fromview
toview:(uiview*) toviewduration:(nstimeinterval)durationoptions:(uiviewanimationoptions) options
completion:(void(^)(boolfinished))completion;
參數說明:
duration:動畫的持續時間
options:轉場動畫的類型
animations:將改變視圖屬性的代碼放在這個block中
completion:動畫結束后,會自動調用這個block
三、應用
注意:
轉場動畫使用注意點:轉場代碼必須和轉場動畫代碼寫在一起,否則無效
1、圖片瀏覽
實例:

實例講解iOS中的CATransition轉場動畫使用

代碼實現

復制代碼 代碼如下:


#import "viewcontroller.h"

 

@interface viewcontroller ()
@property (weak, nonatomic) iboutlet uiimageview *imagev;

@end

@implementation viewcontroller

// 注意: 轉場動畫使用注意點:轉場代碼必須和轉場動畫代碼寫在一起,否則無效
- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event
{
    // 實現:圖片瀏覽

    /** 轉場代碼 */
    static int index = 2;
    nsstring *imagename = [nsstring stringwithformat:@"%d",index];
    _imagev.image = [uiimage imagenamed:imagename];
    index++;

    if (index == 4) {
        index = 1;
    }

    /** 轉場動畫代碼 */
    // 創建轉場動畫對象
    catransition *anim = [catransition animation];

    // 設置轉場類型
    anim.type = @"pagecurl";

    // 設置動畫的方向
    anim.subtype = kcatransitionfromleft;

    anim.duration = 3;

    [_imagev.layer addanimation:anim forkey:nil];
}
@end


2、圖標3d翻轉:使用uiview自帶的單視圖的轉場動畫函數實現

 

實例講解iOS中的CATransition轉場動畫使用

代碼實現

復制代碼 代碼如下:


#import "viewcontroller.h"

 

@interface viewcontroller ()

@property (weak, nonatomic)  uiimageview *iconview;

@end

@implementation viewcontroller

- (void)viewdidload{

    [super viewdidload];


    uiimageview *iconview = [[uiimageview alloc] initwithimage:[uiimage imagenamed:@"1"]];
    [self.view addsubview:iconview];
    iconview.center = self.view.center;
    iconview.backgroundcolor = [uicolor greencolor];
    self.iconview = iconview;

    // 設置為圓角圖片
    self.iconview.layer.cornerradius = self.iconview.frame.size.width * 0.5;
    self.iconview.clipstobounds = yes;
}

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event
{

    // uiview自帶的轉場動畫
    [uiview transitionwithview:self.iconview duration:1.0 options:uiviewanimationoptiontransitionflipfromleft animations:^{ /**  執行左翻轉動畫,*/
        // 從左邊翻轉 , 之前設置顯示圖片1,翻轉后顯示圖2 -》圖片1 左翻轉到最后顯示圖片2


        self.iconview.image = [uiimage imagenamed:@"2"];

    } completion:^(bool finished) {

        nslog(@"completion");

        /** 左翻轉動畫 結束后, 停 1 秒后,再執行 右翻轉動畫 */

        dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(1.0 * nsec_per_sec)), dispatch_get_main_queue(), ^{ // 停 1 秒后,再執行 右翻轉動畫

            [uiview transitionwithview:self.iconview duration:1.0 options:uiviewanimationoptiontransitionflipfromright animations:^{ // 然后,從右邊翻轉,翻轉時顯示圖片1 -》圖片2 右翻轉最后顯示圖片1

                self.iconview.image = [uiimage imagenamed:@"1"];

            } completion:nil];

        });
    }];
}
@end


3、視圖間轉場動畫:使用uiview自帶雙視圖間的轉場動畫函數實現

 

 

復制代碼 代碼如下:


#import "viewcontroller.h"

 

@interface viewcontroller ()

@property (weak, nonatomic) iboutlet uiscrollview *scrollview;

/**< imageview1  */
@property (nonatomic, strong) uiview *view1;

/**< imageview2 */
@property (nonatomic, strong) uiview *view2;

@end

@implementation viewcontroller

- (void)viewdidload{

    [super viewdidload];

    self.view.backgroundcolor = [uicolor blackcolor];

    // 1. scrollview 添加 view2 子控件
    uiview *view2 = [[uiview alloc] init];
    view2.backgroundcolor = [uicolor greencolor];

    [self.scrollview addsubview:view2];
    self.view2 = view2;

    // 2. scrollview 添加 view1 子控件
    uiview *view1 = [[uiview alloc] init];
    view1.backgroundcolor = [uicolor redcolor];

    [self.scrollview addsubview:view1];
    self.view1 = view1;

    // 3. frame
    cgfloat scrollvieww = self.scrollview.frame.size.width;
    cgfloat scrollviewh = self.scrollview.frame.size.height;

    view1.frame = cgrectmake(0, 0, scrollvieww, scrollviewh);
    view2.frame = cgrectmake(0, 0, scrollvieww, scrollviewh); // cgrectmake(scrollvieww, 0, scrollvieww, scrollviewh);

    // 4. scrollview
    self.scrollview.contentsize = cgsizemake(scrollvieww, scrollviewh);
    // 添加手勢
    uitapgesturerecognizer *tap = [[uitapgesturerecognizer alloc] initwithtarget:self action:@selector(tapclick:)];
    [self.scrollview addgesturerecognizer:tap];
}

int i = 1;

// 監聽到點擊scrollview,進行翻轉動畫
- (void)tapclick:(uitapgesturerecognizer *)tap{

    if (i % 2 != 0) {

        [uiview transitionfromview:self.view1 toview:self.view2 duration:1.0 options:uiviewanimationoptiontransitionflipfromtop completion:nil];

    }else{
        [uiview transitionfromview:self.view2 toview:self.view1 duration:1.0 options:uiviewanimationoptiontransitionflipfrombottom completion:nil];
    }

    i++;
}

 

延伸 · 閱讀

精彩推薦
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111302021-03-15
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
主站蜘蛛池模板: asian gaysex | 亚洲午夜精选 | 精品xxxx户外露出视频 | 成人啪啪18免费网站 | 亚洲成人第一页 | 国产一国产精品一级毛片 | 高清中文字幕在线 | 黄色免费高清网站 | 成人福利视频在线观看 | 久久久久女人精品毛片九一 | 国产91精品一区二区麻豆亚洲 | 天堂亚洲一区 | 免费一级欧美大片视频 | 97风流梦电影 | 日韩av毛片免费观看 | 欧美日穴视频 | 欧美精品毛片 | 91久久线看在观草草青青 | 精品一区二区久久久久久按摩 | 亚洲情av| 在线成人www免费观看视频 | 亚洲国产精品二区 | 欧美一级黄色影院 | chinese中国真实乱对白 | 一级免费观看 | 国产一区二区视频观看 | 中国老女人一级毛片视频 | 国产剧情在线观看一区二区 | 毛片大全 | 久久久久久久久久网 | 欧美一级做一级爱a做片性 久久久资源网 | 国产亚洲在 | 免费在线成人网 | 欧美黄色免费视频 | 久久精品视频在线免费观看 | 一区在线免费视频 | 天天碰天天操 | 99999久久久久久 | 黄www片| 国产黄色录像片 | 中文字幕在线第二页 |