成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS動(dòng)畫總結(jié):UIView動(dòng)畫

移動(dòng)開發(fā) iOS
UIKit直接將動(dòng)畫集成到UIView類中,實(shí)現(xiàn)簡單動(dòng)畫的創(chuàng)建過程。UIView類定義了幾個(gè)內(nèi)在支持動(dòng)畫的屬性聲明,當(dāng)這些屬性發(fā)生改變時(shí),視圖為其變化過程提供內(nèi)建的動(dòng)畫支持。

執(zhí)行動(dòng)畫所需要的工作由UIView類自動(dòng)完成,但仍要在希望執(zhí)行動(dòng)畫時(shí)通知視圖,為此需要將改變屬性的代碼包裝到一個(gè)代碼塊中。 

1.UIView動(dòng)畫具體創(chuàng)建方法 

- (void)buttonPressed 

//  交換本視圖控制器中2個(gè)view位置 
    [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 
    //UIView開始動(dòng)畫,第一個(gè)參數(shù)是動(dòng)畫的標(biāo)識(shí),第二個(gè)參數(shù)附加的應(yīng)用程序信息用來傳遞給動(dòng)畫代理消息 
    [UIView beginAnimations:@"View Flip" context:nil]; 
    //動(dòng)畫持續(xù)時(shí)間 
    [UIView setAnimationDuration:1.25]; 
    //設(shè)置動(dòng)畫的回調(diào)函數(shù),設(shè)置后可以使用回調(diào)方法 
    [UIView setAnimationDelegate:self]; 
    //設(shè)置動(dòng)畫曲線,控制動(dòng)畫速度 
    [UIView  setAnimationCurve: UIViewAnimationCurveEaseInOut]; 
    //設(shè)置動(dòng)畫方式,并指出動(dòng)畫發(fā)生的位置 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view  cache:YES]; 
    //提交UIView動(dòng)畫 
    [UIView commitAnimations]; 


- (void)viewDidLoad 

    [super viewDidLoad]; 
    //主要功能通過UIView動(dòng)畫完成2個(gè)試圖控制器的切換 
     
    self.blueController = [[BlueViewController alloc] initWithNibName:nil bundle:nil]; 
    //設(shè)置導(dǎo)航控制器view的大小占整個(gè)屏幕 
    [self.blueController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)]; 
     
    self.yellowController = [[YellowController alloc]initWithNibName:nil bundle:nil ]; 
    [self.yellowController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)]; 
    //將2個(gè)控制器view插入到目前導(dǎo)航控制器視圖上,yellowController后插入,顯示在最前面 
    [self.view insertSubview:self.blueController.view atIndex:0]; 
    [self.view insertSubview:self.yellowController.view atIndex:1]; 
    //創(chuàng)建導(dǎo)航控制器右按鈕,按鈕名字叫next 
    //添加buttonPressed 事件 
    self.rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"next" style:UIBarButtonItemStylePlain target:self action:@selector(buttonPressed)]; 
    //將按鈕添加到導(dǎo)航控制器默認(rèn)右按鈕上 
    self.navigationItem.rightBarButtonItem = self.rightBarItem; 


有個(gè)問題:如果動(dòng)畫不放在按鈕事件中,直接放到viewDidLoad里,程序首先執(zhí)行這個(gè)controller,這時(shí)動(dòng)畫是不會(huì)顯示的。 

原因:出現(xiàn)這個(gè)問題是因?yàn)殚_機(jī)時(shí)候系統(tǒng)有個(gè)動(dòng)畫,系統(tǒng)動(dòng)畫和這個(gè)動(dòng)畫重復(fù)了。 

解決方案: 

1。將動(dòng)畫寫在按鈕事件中 

2。利用定時(shí)器。 


轉(zhuǎn):UIView動(dòng)畫更具體講解; http://wsqwsq000.iteye.com/blog/1189183 

areAnimationsEnabled 

返回一個(gè)布爾值表示動(dòng)畫是否結(jié)束。 
+ (BOOL)areAnimationsEnabled 
返回值 
如果動(dòng)畫結(jié)束返回YES,否則NO。

beginAnimations:context: 

開始一個(gè)動(dòng)畫塊 
+ (void)beginAnimations:(NSString *)animationID context:(void *)context 
參數(shù) 
animationID 
動(dòng)畫塊內(nèi)部應(yīng)用程序標(biāo)識(shí)用來傳遞給動(dòng)畫代理消息-這個(gè)選擇器運(yùn)用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來設(shè)置。 
context 
附加的應(yīng)用程序信息用來傳遞給動(dòng)畫代理消息-這個(gè)選擇器使用setAnimationWillStartSelector: 和setAnimationDidStopSelector: 方法。 
討論 
這個(gè)值改變是因?yàn)樵O(shè)置了一些需要在動(dòng)畫塊中產(chǎn)生動(dòng)畫的屬性。動(dòng)畫塊可以被嵌套。如果在沒有在動(dòng)畫塊中調(diào)用那么setAnimation類方法將什么都不做。使用 beginAnimations:context:來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法來結(jié)束一個(gè)動(dòng)畫塊。

commitAnimations 

結(jié)束一個(gè)動(dòng)畫塊并開始當(dāng)他在動(dòng)畫塊外時(shí)。 
+ (void)commitAnimations 
討論 
如果當(dāng)前的動(dòng)畫塊是最外層的動(dòng)畫塊,當(dāng)應(yīng)用程序返回到循環(huán)運(yùn)行時(shí)開始動(dòng)畫塊。動(dòng)畫在一個(gè)獨(dú)立的線程中所有應(yīng)用程序不會(huì)中斷。使用這個(gè)方法,多個(gè)動(dòng)畫可以被實(shí)現(xiàn)。查看setAnimationBeginsFromCurrentState:來了解如果開始一個(gè)動(dòng)畫當(dāng)另外一個(gè)動(dòng)畫在播放的時(shí)候。 

layerClass 

返回類用來創(chuàng)建這一個(gè)本類的layer實(shí)例對(duì)象。 
+ (Class)layerClass 
返回值 
一個(gè)用來創(chuàng)建視圖layer的類 
討論 
重寫子類來指定一個(gè)自定義類用來顯示。當(dāng)在創(chuàng)建視圖layer時(shí)候調(diào)用。默認(rèn)的值是CALayer類對(duì)象。 

setAnimationBeginsFromCurrentState 

設(shè)置動(dòng)畫從當(dāng)前狀態(tài)開始播放。 
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState 
參數(shù) 
fromCurrentState 
YES如果動(dòng)畫需要從他們當(dāng)前狀態(tài)開始播放。否則為NO。 
討論 
如果設(shè)置為YES那么當(dāng)動(dòng)畫在運(yùn)行過程中,當(dāng)前視圖的位置將會(huì)作為新的動(dòng)畫的開始狀態(tài)。如果設(shè)置為NO,當(dāng)前動(dòng)畫結(jié)束前新動(dòng)畫將使用視圖最後狀態(tài)的位置作 為開始狀態(tài)。這個(gè)方法將不會(huì)做任何事情如果動(dòng)畫沒有運(yùn)行或者沒有在動(dòng)畫塊外調(diào)用。使用beginAnimations:context:類方法來開始并用 commitAnimations類方法來結(jié)束動(dòng)畫塊。默認(rèn)值是NO。 

setAnimationCurve 

設(shè)置動(dòng)畫塊中的動(dòng)畫屬性變化的曲線。 
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve 
討論 
動(dòng)畫曲線是動(dòng)畫運(yùn)行過程中相對(duì)的速度。如果在動(dòng)畫塊外調(diào)用這個(gè)方法將會(huì)無效。使用 beginAnimations:context:類方法來開始動(dòng)畫塊并用commitAnimations來結(jié)束動(dòng)畫塊。默認(rèn)動(dòng)畫曲線的值是 UIViewAnimationCurveEaseInOut。 

setAnimationDelay: 

在動(dòng)畫塊中設(shè)置動(dòng)畫的延遲屬性(以秒為單位) 
+ (void)setAnimationDelay:(NSTimeInterval)delay 
討論 
這個(gè)方法在動(dòng)畫塊外調(diào)用無效。使用beginAnimations:context: 類方法開始一個(gè)動(dòng)畫塊并用commitAnimations類方法結(jié)束動(dòng)畫塊。默認(rèn)的動(dòng)畫延遲是0.0秒。 

setAnimationDelegate: 

設(shè)置動(dòng)畫消息的代理。 
+ (void)setAnimationDelegate:(id)delegate 
參數(shù) 
delegate 
你可以用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來設(shè)置接收代理消息的對(duì)象。 
討論 
這個(gè)方法在動(dòng)畫塊外沒有任何效果。使用beginAnimations:context:類方法開始一個(gè)動(dòng)畫塊并用commitAnimations類方法結(jié)束一個(gè)動(dòng)畫塊。默認(rèn)值是nil 

setAnimationDidStopSelector: 

設(shè)置消息給動(dòng)畫代理當(dāng)動(dòng)畫停止的時(shí)候。 
+ (void)setAnimationDidStopSelector:(SEL)selector 
參數(shù) 
selector 
當(dāng)動(dòng)畫結(jié)束的時(shí)候發(fā)送給動(dòng)畫代理。默認(rèn)值是NULL。這個(gè)選擇者須有下面方法的簽名:animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context。 
animationID 
一個(gè)應(yīng)用程序提供的標(biāo)識(shí)符。和傳給beginAnimations:context: 相同的參數(shù)。這個(gè)參數(shù)可以為空。 
finished 
如果動(dòng)畫在停止前完成那返回YES;否則就是NO。 
context 
一個(gè)可選的應(yīng)用程序內(nèi)容提供者。和beginAnimations:context: 方法相同的參數(shù)。可以為空。 
討論 
這個(gè)方法在動(dòng)畫塊外沒有任何效果。使用beginAnimations:context: 類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法結(jié)束。默認(rèn)值是NULL。 

setAnimationDuration: 

設(shè)置動(dòng)畫塊中的動(dòng)畫持續(xù)時(shí)間(用秒) 
+ (void)setAnimationDuration:(NSTimeInterval)duration 
參數(shù) 
duration 
一段動(dòng)畫持續(xù)的時(shí)間。 
討論 
這個(gè)方法在動(dòng)畫塊外沒有效果。使用beginAnimations:context: 類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法來結(jié)束一個(gè)動(dòng)畫塊。默認(rèn)值是0.2。 

setAnimationRepeatAutoreverses: 
設(shè)置動(dòng)畫塊中的動(dòng)畫效果是否自動(dòng)重復(fù)播放。 
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses 
參數(shù) 
repeatAutoreverses 
如果動(dòng)畫自動(dòng)重復(fù)就是YES否則就是NO。 
討論 
自動(dòng)重復(fù)是當(dāng)動(dòng)畫向前播放結(jié)束後再重頭開始播放。使用setAnimationRepeatCount: 類方法來指定動(dòng)畫自動(dòng)重播的時(shí)間。如果重復(fù)數(shù)為0或者在動(dòng)畫塊外那將沒有任何效果。使用beginAnimations:context:類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations方法來結(jié)束一個(gè)動(dòng)畫塊。默認(rèn)值是NO。 

setAnimationRepeatCount: 

設(shè)置動(dòng)畫在動(dòng)畫模塊中的重復(fù)次數(shù) 
+ (void)setAnimationRepeatCount:(float)repeatCount 
參數(shù) 
repeatCount 
動(dòng)畫重復(fù)的次數(shù),這個(gè)值可以是分?jǐn)?shù)。 
討論 
這個(gè)屬性在動(dòng)畫塊外沒有任何作用。使用beginAnimations:context:類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法來結(jié)束。默認(rèn)動(dòng)畫不循環(huán)。 

setAnimationsEnabled: 
設(shè)置是否激活動(dòng)畫 
+ (void)setAnimationsEnabled:(BOOL)enabled 
參數(shù) 
enabled 
如果是YES那就激活動(dòng)畫;否則就是NO 
討論 
當(dāng)動(dòng)畫參數(shù)沒有被激活那么動(dòng)畫屬性的改變將被忽略。默認(rèn)動(dòng)畫是被激活的。 

setAnimationStartDate: 
設(shè)置在動(dòng)畫塊內(nèi)部動(dòng)畫屬性改變的開始時(shí)間 
+ (void)setAnimationStartDate:(NSDate *)startTime 
參數(shù) 
startTime 
一個(gè)開始動(dòng)畫的時(shí)間 
討論 
使用beginAnimations:context:類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法來結(jié)束動(dòng)畫塊。默認(rèn)的開始時(shí)間值由CFAbsoluteTimeGetCurrent方法來返回。 

setAnimationTransition:forView:cache: 
在動(dòng)畫塊中為視圖設(shè)置過渡 
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache 
參數(shù) 
transition 
把一個(gè)過渡效果應(yīng)用到視圖中。可能的值定義在UIViewAnimationTransition中。 
view 
需要過渡的視圖對(duì)象。 
cache 
如果是YES,那么在開始和結(jié)束圖片視圖渲染一次并在動(dòng)畫中創(chuàng)建幀;否則,視圖將會(huì)在每一幀都渲染。例如緩存,你不需要在視圖轉(zhuǎn)變中不停的更新,你只需要等到轉(zhuǎn)換完成再去更新視圖。 
討論 
如果你想要在轉(zhuǎn)變過程中改變視圖的外貌。舉個(gè)例子,文件從一個(gè)視圖到另一個(gè)視圖,然後使用一個(gè)UIView子類的容器視圖,如下: 
1.Begin an animation block. 
2.Set the transition on the container view. 
3.Remove the subview from the container view. 
4.Add the new subview to the container view. 
5.Commit the animation block. 
1.開始一個(gè)動(dòng)畫塊。 2.在容器視圖中設(shè)置轉(zhuǎn)換。 3.在容器視圖中移除子視圖。 4.在容器視圖中添加子視圖。 5.結(jié)束動(dòng)畫塊。 

setAnimationWillStartSelector: 

當(dāng)動(dòng)畫開始時(shí)發(fā)送一條消息到動(dòng)畫代理 
+ (void)setAnimationWillStartSelector:(SEL)selector 
參數(shù) 
selector 
在動(dòng)畫開始前向動(dòng)畫代理發(fā)送消息。默認(rèn)值是NULL。這個(gè)selector必須由和beginAnimations:context: 方法相同的參數(shù),一個(gè)任選的程序標(biāo)識(shí)和內(nèi)容。這些參數(shù)都可以是nil。 
討論 
這個(gè)方法在動(dòng)畫塊外沒有任何作用。使用beginAnimations:context:類方法來開始一個(gè)動(dòng)畫塊并用commitAnimations類方法來結(jié)束。

責(zé)任編輯:冰凝兒
相關(guān)推薦

2011-08-01 10:01:12

Xcode UIView 動(dòng)畫

2011-08-15 13:50:06

IPhone開發(fā)UIView動(dòng)畫

2011-08-12 11:31:46

iPhoneUIView動(dòng)畫

2011-08-16 18:13:42

IPhone開發(fā)UIView動(dòng)畫

2011-07-03 10:05:52

Core Animat

2011-08-03 16:26:14

iPhone UIView 動(dòng)畫

2011-08-03 16:35:10

iPhone UIView 動(dòng)畫

2015-12-23 09:16:33

ios動(dòng)畫渲染機(jī)制

2015-12-30 14:16:05

iOS動(dòng)畫視圖渲染

2021-02-21 08:12:24

SVG線條動(dòng)畫Web動(dòng)畫

2014-02-17 10:12:11

移動(dòng)APP動(dòng)畫設(shè)計(jì)

2011-07-22 16:37:14

IOS CALayer 動(dòng)畫

2021-02-21 07:49:40

Web動(dòng)畫SVG線條動(dòng)畫

2011-07-22 18:20:04

IOS View 動(dòng)畫

2017-02-07 11:35:26

Android動(dòng)畫蠟燭動(dòng)畫

2022-01-16 12:10:18

騰訊動(dòng)畫組件PAG

2015-07-27 10:27:32

IOS基礎(chǔ)知識(shí)核心動(dòng)畫

2009-09-22 12:59:58

ibmdwDojo

2011-07-08 10:15:15

IPhone 動(dòng)畫

2013-07-25 13:43:23

iOS開發(fā)學(xué)習(xí)UIView的Anim
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美网站一区二区 | 99精品欧美一区二区蜜桃免费 | 美国av毛片| 中文字幕日韩欧美一区二区三区 | 精品国产免费一区二区三区五区 | 久久精品国产99国产 | 毛片免费视频 | 国产精品综合一区二区 | 91精品国产一区二区三区动漫 | 日韩激情免费 | www.日韩欧美 | 国产一区中文字幕 | 亚洲免费在线观看视频 | 91精品国产91久久久久久丝袜 | 国产欧美精品 | 国产美女一区二区 | 精品久久久久久18免费网站 | 国产一区二区三区四区在线观看 | 日本精品视频在线观看 | 免费午夜视频 | 伦理二区| 国产精品国产三级国产aⅴ浪潮 | 欧美一卡二卡在线 | 国产精品久久精品 | 在线免费观看毛片 | 欧美成人精品在线 | 看av网| 国产乱人伦精品一区二区 | 黄色毛片在线看 | 91精品国产色综合久久不卡98口 | 亚洲免费视频在线观看 | 91原创视频 | 91精品国产综合久久福利软件 | 亚洲风情在线观看 | 精品久久国产 | 国产成人在线观看免费 | 91免费看片神器 | 欧美区在线 | 日韩午夜电影在线观看 | 久色视频在线观看 | 国产精品高潮呻吟久久久久 |