国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

-iOS開發:UIView動畫詳解

2019-11-02 14:32:20
字體:
來源:轉載
供稿:網友

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

  1.UIView動畫具體創建方法

  - (void)buttonPressed

  {

  // 交換本視圖控制器中2個view位置

  [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

  //UIView開始動畫,第一個參數是動畫的標識,第二個參數附加的應用程序信息用來傳遞給動畫代理消息

  [UIView beginAnimations:@"View Flip" context:nil];

  //動畫持續時間

  [UIView setAnimationDuration:1.25];

  //設置動畫的回調函數,設置后可以使用回調方法

  [UIView setAnimationDelegate:self];

  //設置動畫曲線,控制動畫速度

  [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];

  //設置動畫方式,并指出動畫發生的位置

  [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

  //提交UIView動畫

  [UIView commitAnimations];

  }

  - (void)viewDidLoad

  {

  [super viewDidLoad];

  //主要功能通過UIView動畫完成2個試圖控制器的切換

  self.blueController = [[BlueViewController alloc] initWithNibName:nil bundle:nil];

  //設置導航控制器view的大小占整個屏幕

  [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個控制器view插入到目前導航控制器視圖上,yellowController后插入,顯示在最前面

  [self.view insertSubview:self.blueController.view atIndex:0];

  [self.view insertSubview:self.yellowController.view atIndex:1];

  //創建導航控制器右按鈕,按鈕名字叫next

  //添加buttonPressed 事件

  self.rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"next" style:UIBarButtonItemStylePlain target:self action:@selector(buttonPressed)];

  //將按鈕添加到導航控制器默認右按鈕上

  self.navigationItem.rightBarButtonItem = self.rightBarItem;

  }

  有個問題:如果動畫不放在按鈕事件中,直接放到viewDidLoad里,程序首先執行這個controller,這時動畫是不會顯示的。

  原因:出現這個問題是因為開機時候系統有個動畫,系統動畫和這個動畫重復了。

  解決方案:

  1。將動畫寫在按鈕事件中

  2。利用定時器。

  areAnimationsEnabled

  返回一個布爾值表示動畫是否結束。

  + (BOOL)areAnimationsEnabled

  返回值

  如果動畫結束返回YES,否則NO。

  beginAnimations:context:

  開始一個動畫塊

  + (void)beginAnimations:(NSString *)animationID context:(void *)context

  參數

  animationID

  動畫塊內部應用程序標識用來傳遞給動畫代理消息-這個選擇器運用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來設置。

  context

  附加的應用程序信息用來傳遞給動畫代理消息-這個選擇器使用setAnimationWillStartSelector: 和setAnimation

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荣成市| 保康县| 湖南省| 延安市| 胶州市| 云南省| 沅陵县| 文昌市| 佛坪县| 辰溪县| 沈阳市| 承德县| 梨树县| 东兴市| 遂川县| 昔阳县| 上蔡县| 盐津县| 双辽市| 安龙县| 会东县| 县级市| 瓮安县| 南平市| 枞阳县| 桓台县| 清流县| 大同市| 太和县| 青田县| 孟州市| 金山区| 金秀| 怀远县| 桑日县| 安阳县| 富川| 建瓯市| 台安县| 平定县| 西贡区|