iPad开发(1)   

iPad和iPhone开发的主要区别
1>设备支持的应用程序
iPhone上只能运行iPhone程序
iPad上能够运行iPhone \ iPad程序

2>屏幕方向的支持
iPhone支持3个方向
iPad支持4个方向

3>键盘
iPad的虚拟键盘多了个退出键盘的按钮


iPad特有的API
1.UIPopoverController
2.UISpiltViewController:包含菜单控制器和详情控制器

1.UIPopoverController

1>什么是UIPopoverController

one:是iPad开发中常见的一种控制器(
注意:在iPhone上iOS8开始使用UIPopoverPresentationController和UIPopoverController类似
two:跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController
three:它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面

2>UIPopoverController的使用步骤
1.设置内容控制器
问题一: 使用init方法不能有效初始化UIPopoverController
// 1.创建UIPopoverController
UIPopoverController *menuPopoer = [[UIPopoverController alloc]  init ];
// 2.创建内容控制器,并且设置内容控制器
MenuViewController  *menuVc = [[ MenuViewController   alloc ]  init ];
menuPopoer . contentViewController  = menuVc;

问题二: 不用每一次都重新创建UIPopoverController,设置成员变量
// 1.创建内容控制
MenuViewController *menuVc = [[MenuViewController alloc] init];
// 2.创建UIPopoverController,并且设置内容控制器
UIPopoverController  *menuPopoer = [[ UIPopoverController   alloc ]  initWithContentViewController :menuVc];

正确的方法
//1.创建popOver的内容控制器
MenuViewController  *menuVc=[[MenuViewController alloc] init];
//2.创建popOver控制器,并设置内容控制器
_menuPopover =[[ UIPopoverController   alloc ]  initWithContentViewController :menuVc];

2.设置内容尺寸:显示出来占据多少屏幕空间
注意: self.contentSizeForViewInPopover ios7以后失效使用以下方法代替
self . preferredContentSize = CGSizeMake ( 120 ,  44  *  self . items . count );

3.设置内容显示的位置:显示在哪个位置(两种方式)
one:围绕着一个UIBarButtonItem显示
参数
item :围绕着哪个 UIBarButtonItem 显示
arrowDirections :箭头的方向
animated :是否通过动画显示出来
[ self . menuPopover   presentPopoverFromBarButtonItem :sender  permittedArrowDirections : UIPopoverArrowDirectionAny   animated : YES ];

two: 围绕着某一块特定区域显示(箭头指定那块特定区域)
参数:
rect :指定箭头所指区域的矩形框范围(位置和尺寸)
view :rect参数是以view的左上角为坐标原点(0,0)
arrowDirections :箭头的方向
animated :是否通过动画显示出来
[ self . titlePopover   presentPopoverFromRect :sender. bounds   inView :sender  permittedArrowDirections : UIPopoverArrowDirectionAny   animated : YES ];

3>UIPopoverController的补充
补充一:通过属性或者方法,可以修改UIPopoverController的内容控制器
self .menuPopoer.contentViewController
self .menuPopoer setContentViewController:(UIViewController *) animated:( BOOL )

补充二:通过该方法可以改变UIPopoverController的大小
self .menuPopoer setPopoverContentSize:(CGSize) animated:( BOOL )

补充三:通过该属性可以让UIPopoverController弹出来之后,一些控件依然可以和用户交互
self .menuPopoer.passthroughViews =  @[ self .testButton ] ;

补充四:设置代理,监听UIPopoverController的状态
self .menuPopoer.delegate

modal在iPad中的使用
1>modal呈现样式
Modal出来的控制器,最终显示出来的样子

Modal常见有4种呈现样式
UIModalPresentationFullScreen  : 全屏显示 (默认)
UIModalPresentationPageSheet
宽度:竖屏时的宽度(768)
高度:当前屏幕的高度(填充整个高度)

UIModalPresentationFormSheet  : 占据屏幕中间的一小块
UIModalPresentationCurrentContext  : 跟随父控制器的呈现样式

2>modal 过渡样式
Modal出来的控制器,是以怎样的动画呈现出来

Modal一共4种过渡样式
UIModalTransitionStyleCoverVertical  :从底部往上钻 (默认)
UIModalTransitionStyleFlipHorizontal  :三维翻转
UIModalTransitionStyleCrossDissolve  :淡入淡出
UIModalTransitionStylePartialCurl  :翻页(只显示部分,使用前提:呈现样式必须是 UIModalPresentationFullScreen )