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

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

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

服務器之家 - 編程語言 - IOS - iOS開發中常用的各種動畫、頁面切面效果

iOS開發中常用的各種動畫、頁面切面效果

2021-01-15 16:06jerrylsxu IOS

這篇文章主要介紹了iOS開發中常用的各種動畫、頁面切面效果 的相關資料,需要的朋友可以參考下

今天主要用到的動畫類是calayer下的catransition至于各種動畫類中如何繼承的在這也不做贅述,網上的資料是一抓一大把。好廢話少說切入今天的正題。

  一.封裝動畫方法

    1.用catransition實現動畫的封裝方法如下,每句代碼是何意思,請看注釋之。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma catransition動畫實現
- (void) transitionwithtype:(nsstring *) type withsubtype:(nsstring *) subtype forview : (uiview *) view
{
//創建catransition對象
catransition *animation = [catransition animation];
//設置運動時間
animation.duration = duration;
//設置運動type
animation.type = type;
if (subtype != nil) {
//設置子類
animation.subtype = subtype;
}
//設置運動速度
animation.timingfunction = uiviewanimationoptioncurveeaseinout;
[view.layer addanimation:animation forkey:@"animation"];
}

    代碼說明:

      catransition常用的屬性如下:

        duration:設置動畫時間

        type:稍后下面會詳細的介紹運動類型

        subtype:和type匹配使用,指定運動的方向,下面也會詳細介紹

        timingfunction :動畫的運動軌跡,用于變化起點和終點之間的插值計算,形象點說它決定了動畫運行的節奏,比如是

                 均勻變化(相同時間變化量相同)還是先快后慢,先慢后快還是先慢再快再慢.    

               * 動畫的開始與結束的快慢,有五個預置分別為(下同):

                   * kcamediatimingfunctionlinear 線性,即勻速

                   * kcamediatimingfunctioneasein 先慢后快

                   * kcamediatimingfunctioneaseout 先快后慢

                  * kcamediatimingfunctioneaseineaseout 先慢后快再慢

                  * kcamediatimingfunctiondefault 實際效果是動畫中間比較快.

   2.用uiview的block回調實現動畫的代碼封裝 

?
1
2
3
4
5
6
7
8
#pragma uiview實現動畫
- (void) animationwithview : (uiview *)view withanimationtransition : (uiviewanimationtransition) transition
{
[uiview animatewithduration:duration animations:^{
[uiview setanimationcurve:uiviewanimationcurveeaseinout];
[uiview setanimationtransition:transition forview:view cache:yes];
}];
}

    3.改變view的背景圖,便于切換時觀察

?
1
2
3
4
5
#pragma 給view添加背景圖
-(void)addbgimagewithimagename:(nsstring *) imagename
{
self.view.backgroundcolor = [uicolor colorwithpatternimage:[uiimage imagenamed:imagename]];
}

  二.調用上面的方法實現我們想要的動畫

    1.我們在view上添加多個button,給不同的button設置不同的tag值,然后再viewcontroller中綁定同一個方法,點擊不同的button實現不同的頁面切換效果。storyboard上的控件效果如下圖所示:

iOS開發中常用的各種動畫、頁面切面效果

    2.下面我們就開始編寫點擊button要回調的方法

      (1).定義枚舉來標示按鈕所對應的動畫類型,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef enum : nsuinteger {
fade = , //淡入淡出
push, //推擠
reveal, //揭開
movein, //覆蓋
cube, //立方體
suckeffect, //吮吸
oglflip, //翻轉
rippleeffect, //波紋
pagecurl, //翻頁
pageuncurl, //反翻頁
camerairishollowopen, //開鏡頭
camerairishollowclose, //關鏡頭
curldown, //下翻頁
curlup, //上翻頁
flipfromleft, //左翻轉
flipfromright, //右翻轉
} animationtype;

    (2),獲取button的tag值:

?
1
2
uibutton *button = sender;
animationtype animationtype = button.tag;

    (3).每次點擊button都改變subtype的值,包括上,左,下,右

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
nsstring *subtypestring;
switch (_subtype) {
case :
subtypestring = kcatransitionfromleft;
break;
case :
subtypestring = kcatransitionfrombottom;
break;
case :
subtypestring = kcatransitionfromright;
break;
case :
subtypestring = kcatransitionfromtop;
break;
default:
break;
}
_subtype += ;
if (_subtype > ) {
_subtype = ;
}

    (4),通過switch結合上邊的枚舉來判斷是那個按鈕點擊的

?
1
2
3
4
switch (animationtype)
{
//各種case,此處代碼下面會給出
}

   3.調用我們封裝的運動方法,來實現動畫效果

    (1),淡化效果

?
1
2
3
case fade:
[self transitionwithtype:kcatransitionfade withsubtype:subtypestring forview:self.view];
break; 

    (2).push效果

?
1
2
3
case push:
[self transitionwithtype:kcatransitionpush withsubtype:subtypestring forview:self.view];
break;

     效果如下:

 iOS開發中常用的各種動畫、頁面切面效果

    (3).揭開效果:

?
1
2
3
case reveal:
[self transitionwithtype:kcatransitionreveal withsubtype:subtypestring forview:self.view];
break;

    效果圖如下:

  iOS開發中常用的各種動畫、頁面切面效果

    (4).覆蓋效果

?
1
2
3
case movein:
[self transitionwithtype:kcatransitionmovein withsubtype:subtypestring forview:self.view];
break;

      效果圖如下:

iOS開發中常用的各種動畫、頁面切面效果

   (5).立方體效果

?
1
2
3
case cube:
[self transitionwithtype:@"cube" withsubtype:subtypestring forview:self.view];
break;

    效果如下:

   iOS開發中常用的各種動畫、頁面切面效果

    (6).吮吸效果

?
1
2
3
case suckeffect:
[self transitionwithtype:@"suckeffect" withsubtype:subtypestring forview:self.view];
break;

      效果如下:

iOS開發中常用的各種動畫、頁面切面效果

    (7).翻轉效果

?
1
2
3
case oglflip:
[self transitionwithtype:@"oglflip" withsubtype:subtypestring forview:self.view];
break;

    效果圖如下:

iOS開發中常用的各種動畫、頁面切面效果

    8.波紋效果

?
1
2
3
case rippleeffect:
[self transitionwithtype:@"rippleeffect" withsubtype:subtypestring forview:self.view];
break;  

 iOS開發中常用的各種動畫、頁面切面效果

    (9).翻頁和反翻頁效果

?
1
2
3
4
5
6
case pagecurl:
[self transitionwithtype:@"pagecurl" withsubtype:subtypestring forview:self.view];
break;
case pageuncurl:
[self transitionwithtype:@"pageuncurl" withsubtype:subtypestring forview:self.view];
break;

iOS開發中常用的各種動畫、頁面切面效果  iOS開發中常用的各種動畫、頁面切面效果

    (10).相機打開效果

?
1
2
3
4
5
6
case camerairishollowopen:
[self transitionwithtype:@"camerairishollowopen" withsubtype:subtypestring forview:self.view];
break;
case camerairishollowclose:
[self transitionwithtype:@"camerairishollowclose" withsubtype:subtypestring forview:self.view];
break;

iOS開發中常用的各種動畫、頁面切面效果

  (11),調用上面封裝的第二個動畫方法

?
1
2
3
4
5
6
7
8
9
10
11
12
case curldown:
[self animationwithview:self.view withanimationtransition:uiviewanimationtransitioncurldown];
break;
case curlup:
[self animationwithview:self.view withanimationtransition:uiviewanimationtransitioncurlup];
break;
case flipfromleft:
[self animationwithview:self.view withanimationtransition:uiviewanimationtransitionflipfromleft];
break;
case flipfromright:
[self animationwithview:self.view withanimationtransition:uiviewanimationtransitionflipfromright];
break;

以上內容是針對ios開發中常用的各種動畫、頁面切面效果的相關介紹,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
  • IOS詳解iOS中多個網絡請求的同步問題總結

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

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

    liang199111302021-03-15
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

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

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

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

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

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

    CodingFire13652021-02-26
  • IOSiOS中MD5加密算法的介紹和使用

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

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

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

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

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

    夢想家-mxj8922021-05-10
  • IOSiOS中UILabel實現長按復制功能實例代碼

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

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

    devilx12792021-04-02
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

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

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

    隨風13332021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

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

    執著丶執念5272021-01-16
主站蜘蛛池模板: 成人在线第一页 | 欧美国产成人在线 | gogo全球大胆高清人露出91 | 九九热视频在线免费观看 | 久久精品欧美一区二区三区不卡 | 国产日韩在线视频 | 日韩一级片一区二区三区 | 国产亚洲精品美女久久久 | 美女福利视频国产 | 精品一区二区三区中文字幕老牛 | 白白在线免费视频 | 久久国产精品91 | 黄色av一区二区三区 | 91福利社在线 | 久久国产精品99国产 | 久久视频在线免费观看 | av电影院在线观看 | 天堂精品 | 亚洲午夜免费电影 | 亚洲第一成人在线视频 | 黄在线免费 | 成人超碰 | 欧美一区黄色 | 精品国产一区二区三区蜜殿 | 久久国产成人精品国产成人亚洲 | wwwxxx国产| 成人福利视频 | 日本一区二区视频在线 | 成年人黄色免费电影 | 一色一情 | 精品无码久久久久久国产 | 国产精品爱久久久久久久 | 国内一区| 欧美三级日本三级少妇99 | 久草免费新视频 | a级高清免费毛片av在线 | 日韩色视频 | 黑人一区二区三区四区五区 | 国产免费久久久 | 精品国产乱码久久久久久久 | 久久久久一区二区三区四区五区 |