自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPad 和 iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解

移動開發(fā) iOS
本文介紹的是iPad 和 iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解,一個不錯的小實例,與友們分享一下!

iPad iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解是本文要介紹的內(nèi)容。最近做ipad項目,遇到不少屏幕轉(zhuǎn)屏發(fā)生的錯誤現(xiàn)象。(其中有些還是自己編碼時的疏忽和不規(guī)范導(dǎo)致的)

那以下就是總結(jié)一些做支持旋轉(zhuǎn)的時候的一些思路和碰到的問題時如何解決的。

首先描述 下工程的大體的一個結(jié)構(gòu)特征。

工程是以UISplitViewController 為依托,然后它的viewControllers分別是    UITabBarController 和 UINavigationController。其中UITabBarController里面的viewControllers又分別是一個個UINavigationController組成。

iPad 和 iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解

具體詳見圖1豎屏

iPad 和 iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解

圖2橫屏

首先這邊碰到一個問題是在橫屏的時候要是沒有對處理UITabBarController進行處理那么會出現(xiàn)在橫屏啟動程序的時候***個UINavigationController會向下降低20像素的現(xiàn)象

iPad 和 iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解

詳見圖3

導(dǎo)致這個現(xiàn)象現(xiàn)在暫時的一個處理是在創(chuàng)建UITabBarController的時候先tabBarCtr.selectedIndex = 1;

然后在方法

  1. (void)viewDidLoad  
  2.  
  3. tabBarCtr.selectedIndex = 0;  

這樣就可以暫時解決掉橫屏顯示異常的現(xiàn)象。(到時候在找到具體解決方法的時候在更新)

以上這邊就是程序的大體的一個組成結(jié)構(gòu),下面進入到我們正式的屏幕旋轉(zhuǎn)的時候是如何支持的。

以下針對的是主ctr 的操作即 UISplitViewController

屏幕旋轉(zhuǎn)其實就是要管理好 1、UIViewController  2、添加在UIViewController上的view或者單獨的一些view的處理控制。

首先對應(yīng)UIViewController它里面提供了很多旋轉(zhuǎn)時候的一些代理和方法。

1、設(shè)置支持自動適應(yīng)橫豎屏

  1. (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation   
  2. {  
  3.  return YES;  

2、在屏幕快要發(fā)生改變的時候進行處理

  1. (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration  
  2. {  
  3. //其實我們在這邊要做的就是傳遞旋轉(zhuǎn)消息和對view做相應(yīng)的改變  
  4.    for (int i=0; i<[tabBarCtr.viewControllers count]; i++)  
  5.    {  
  6.  UINavigationController *navCtr = (UINavigationController *)[tabBarCtr.viewControllers  objectAtIndex:i];  
  7.  NSArray *ctrs = navCtr.viewControllers;  
  8.  for (int j=0; j<[ctrs count]; j++)   
  9.  {  
  10.   //傳遞旋轉(zhuǎn)的消息到UITabBarController底下的UIViewController    
  11.   UIViewController *viewCtr = (UIViewController *)[ctrs objectAtIndex:j];  
  12.   [viewCtr willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];  
  13.   if ([viewCtr.view respondsToSelector:@selector(reloadSubviews)])  
  14.   {  
  15.    //對UIViewController進行重新刷新view的位置的操作  
  16.    //reloadSubviews方法就是在每個ctr類中實現(xiàn)對ctr 上view重新布局的操作  
  17.    [viewCtr.view performSelector:@selector(reloadSubviews)];   
  18.   }  
  19.  }  
  20.   [navCtr willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];  
  21.     }  
  22.  //以上這種方式就已經(jīng)對UIViewController和其上的view進行了旋轉(zhuǎn)的相應(yīng)操作  
  23.  //個人覺得當(dāng)然這里也可以用通知進行消息的傳遞  

在某個ctr中 的 reloadSubviews方法樣例

  1. (void)reloadSubviews  
  2. {  
  3.  CGRect frame =  getScreenRect();//用來獲取當(dāng)前旋轉(zhuǎn)后屏幕的大小  frame就是為刷新提供大小  
  4.  AA.frame = CGRectMake(frame.size.width-140, 104, 120, 40);  
  5.  BB.frame = CGRectMake(frame.size.width-140, 44, 120, 40);   
  6.  Ctr.view.frame = CGRectMake(0, 200, frame.size.width, frame.size.height-200);  
  7.  [tableView reloadData];  

ipad旋轉(zhuǎn)的時候如果在橫屏的時候?qū)IViewController 進行push多層的時候出現(xiàn)異常(push后退出的動作本來是從右向左的展示,但是怪象就是退出的時候變成從上到下的操作)

其實這個時候要去檢查下你push的UIViewController 中對shouldAutorotateToInterfaceOrientation設(shè)置是否為與上層的ctr方法返回一致

如上層返回

  1. (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation   
  2. {  
  3.  return YES;  

那么你這邊也應(yīng)當(dāng)是YES

小結(jié):關(guān)于iPad iPhone 屏幕旋轉(zhuǎn)支持 圖文詳解的內(nèi)容介紹完了希望本文對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-12-13 14:15:26

微軟OneNoteiPad

2011-07-06 15:59:38

iPad iPhone iOS

2021-11-15 17:47:07

屏幕切換機制

2011-05-11 22:47:34

甲骨文ipadiphone

2011-08-19 14:47:48

iPhoneiPhone4iPad

2011-07-18 13:11:53

2021-05-17 07:17:24

蘋果ARVR

2011-06-28 09:28:32

InformationiPadiPhone

2019-04-12 11:20:15

iPhoneiPad AirPlaWindows 10

2011-04-21 17:06:55

iPhoneiOS蘋果

2016-02-23 13:06:10

Wi-Fi連接故障網(wǎng)絡(luò)連接

2011-06-08 14:29:38

英特爾ARMiPhone

2011-08-05 16:58:25

iPad iPhone UIImagePic

2011-06-03 09:41:22

蘋果iPhoneiPad

2014-09-17 13:48:16

iOS 8Size Classe

2014-07-16 10:08:30

2014-07-30 09:56:41

iPhoneiPad

2014-06-17 15:20:09

Wi-FiiPadiPhone

2012-03-07 20:56:57

iPhone

2019-08-13 18:50:46

折疊屏蘋果瑞銀
點贊
收藏

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