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

詳解iPad橫豎屏切換解決方案

移動開發 iOS
本文介紹的是詳解iPad橫豎屏切換解決方案,詳細的介紹了橫豎屏切換的實例,來看詳細內容。

詳解iPad橫豎屏切換解決方案是本文要介紹的內容,不多說,先來看內容。由于ipad橫豎屏不同,所以好的應用,橫豎屏的頁面布局也不一樣。那么就需要橫豎屏的整體解決方案。先看一個橫豎屏布局不一樣的界面。

詳解iPad橫豎屏切換解決方案 詳解iPad橫豎屏切換解決方案

上面兩張圖是來自同一個界面的橫豎版的截屏。可以看出,橫豎版顯示的內容相同,但是界面布局不同。要實現上述布局,主要是運用UIView中layoutSubviews方法。當UIView設置為自動適配屏幕時,當用戶旋轉設備的時候,會調用layoutSubviews方法,我們只需重寫這個方法,然后判斷用戶屏幕的方向。在調整每個空間的位置即可。

下面是實現上述界面的最簡單的原型:

首先分析可以知道左面是圖片,右面是一個圖片加文字的視圖。下面就實現一個左面視圖右面是一個圖加一段字的事例。

事例的截圖如下:

詳解iPad橫豎屏切換解決方案 詳解iPad橫豎屏切換解決方案

其中右面的文字和綠色部分是用一個子視圖封裝的。

整個布局是我在主視圖中添加了一個ContentView視圖,在ContentView視圖中添加了一個ArticleView視圖。

其中ArticleView和ContentView的xib文件都打開了

詳解iPad橫豎屏切換解決方案

在ContentView中重寫layoutSubviews方法,然后根據stausbar的方向判斷當前視圖的橫豎屏。具體代碼:

  1. -(void)layoutSubviews{   
  2.     [super layoutSubviews];   
  3.     UIDeviceOrientation interfaceOrientation=[[UIApplication sharedApplication] statusBarOrientation];   
  4.     if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {   
  5.         //翻轉為豎屏時   
  6.         [self setVerticalFrame];   
  7.     }else if (interfaceOrientation==UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight) {   
  8.         //翻轉為橫屏時   
  9.         [self setHorizontalFrame];   
  10.     }   
  11. }   
  12.  
  13. -(void)setVerticalFrame   
  14. {   
  15.     NSLog(@"豎屏");   
  16.     [titleLable setFrame:CGRectMake(283, 0, 239, 83)];   
  17.     [leftView setFrame:CGRectMake(38, 102, 384, 272)];   
  18.     [rightView setFrame:CGRectMake(450, 102, 282, 198)];   
  19. }   
  20.  
  21. -(void)setHorizontalFrame   
  22. {   
  23.     NSLog(@"橫屏");   
  24.     [titleLable setFrame:CGRectMake(183, 0, 239, 83)];   
  25.     [leftView setFrame:CGRectMake(168, 122, 384, 272)];   
  26.     [rightView setFrame:CGRectMake(650, 122, 282, 198)];   

在具體的橫豎屏方法中,從新設置各個組件的坐標即可。

接下來在ContentView中添加ArticleView視圖。

  1. -(id)initWithCoder:(NSCoder *)aDecoder   
  2. {   
  3.     if ((self = [super initWithCoder:aDecoder])) {   
  4.  
  5.         NSArray *arrayContentView =[[NSBundle mainBundle] loadNibNamed:@"ArticleView" owner:self options:nil];   
  6.         rightView=[arrayContentView objectAtIndex:0];   
  7.         [self addSubview:rightView];   
  8.     }   
  9.     return self;   

由于我用的是xib,所以初始化方法為initWithCoder,在這個中添加新的視圖。

同樣在ArticleView中設置橫豎屏相應空間的坐標即可。

  1. -(void)layoutSubviews{   
  2.     [super layoutSubviews];   
  3.     UIDeviceOrientation interfaceOrientation=[[UIApplication sharedApplication] statusBarOrientation];   
  4.     CGRect rect=self.frame;   
  5.     rect.size.width=282;   
  6.     rect.size.height=198;   
  7.     [self setFrame:rect];   
  8.     if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {   
  9.         //翻轉為豎屏時   
  10.         [self setVerticalFrame];   
  11.     }else if (interfaceOrientation==UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight) {   
  12.         //翻轉為橫屏時   
  13.         [self setHorizontalFrame];   
  14.     }   
  15. }   
  16.  
  17. -(void)setVerticalFrame   
  18. {   
  19.     NSLog(@"豎屏");   
  20.     [contentView setFrame:CGRectMake(12, 6, 250, 125)];   
  21.     [textLable setFrame:CGRectMake(50, 139, 182, 39)];   
  22. }   
  23.  
  24. -(void)setHorizontalFrame   
  25. {   
  26.     NSLog(@"橫屏");   
  27.     [contentView setFrame:CGRectMake(12, 6, 106, 158)];   
  28.     [textLable setFrame:CGRectMake(135, 11, 147, 39)];   

源代碼:http://easymorse-iphone.googlecode.com/svn/trunk/IpadLayOut/

小結:詳解iPad橫豎屏切換解決方案的內容介紹完了,通過ipad屏幕切換的內容,是不是以及很清楚了,最后希望本文對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2013-08-21 11:15:54

iOS橫豎屏方案

2013-05-23 10:51:28

Android開發移動開發橫豎屏切換

2010-02-23 14:56:18

WCF Bug

2011-12-06 14:44:02

iPad企業級解決方案

2017-12-26 14:05:21

潤乾大屏可視化

2009-12-02 13:39:34

SAP認證Novell

2010-01-25 15:23:12

Android橫豎屏切

2018-11-12 11:12:46

2009-11-04 16:03:59

2010-05-07 16:30:01

Oracle數據集成

2023-03-05 18:23:38

分布式ID節點

2011-06-08 15:05:43

J2ME

2009-12-22 15:50:11

2009-11-05 09:42:44

智能小區寬帶接入

2009-10-12 16:29:25

有線網絡布線解決方案

2019-11-11 17:34:16

前端開發技術

2009-10-15 10:39:31

綜合布線解決方案

2012-05-27 16:21:31

IDC華為

2018-12-03 12:17:27

Semptian解決方案

2017-05-11 17:11:13

SDNOpenFlow網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩视频在线第一区 | 日韩一二区 | 本地毛片 | 黄色免费av | 欧美 日韩 国产 成人 在线 91 | 欧美性受xxx | 国产精品久久久久久吹潮 | 国产高清一区二区 | 精品成人佐山爱一区二区 | www.日韩av.com | 亚洲男女视频在线观看 | 亚洲欧美日韩精品久久亚洲区 | 国产精品福利在线 | 羞羞视频网站 | 中文字幕不卡在线观看 | 精品久久久一区 | 久久久久久成人 | 精品欧美一区二区在线观看欧美熟 | 中文字幕在线精品 | 在线观看欧美一区 | 亚洲精品字幕 | 6996成人影院网在线播放 | 久久久91精品国产一区二区精品 | 天天综合永久 | 久久久精品网 | 国产精品久久av | 国产午夜精品一区二区三区嫩草 | 天堂亚洲网 | 久久久精品 | 成人免费大片黄在线播放 | 精品视频在线观看 | 久久精品色欧美aⅴ一区二区 | 免费精品 | 91久操网| 欧美精品成人 | 欧美成人激情视频 | 二区精品 | 亚洲三区在线观看 | 国产免费黄网 | 精品一区精品二区 | 国外成人在线视频网站 |