iphone 6 1134 * 750 4.7英寸
iphone6Plus 1080 *1920 5.5英寸
ipad 和 ipad mini 是不需要做适配的。 (相当于等比例的缩放)
iphone 与 iPad 最大区别就是横竖屏适配。官方建议:ipad 同时支持横竖屏。
屏幕的尺寸 \分辨率
注意上面 ipad 的点都是768 * 1024
区别:
1. iPad的虚拟键盘多了个退出键盘的按钮
2.ipad 特有的API
其中 UIPopoverController 用的比较多。
3.同有API的差异
4.屏幕支持方向
iphone 支持三个方向 iPad支持4个方向。
一般情况下,iPhone应用就一种屏幕方向,要么竖屏,要么横屏(游戏)
其次,苹果官方建议:iPad应用最好同时支持横屏、竖屏两种方向。
--------------------------------------------------------------------------------------------------------------------------
使用Xcode6 细节点:
Xcode6 没有前缀的概念了, 因为是为了swift 准备的,swift有C++的那种命名空间的概率。如果使用XCode 还想使用前缀,可以这样处理,如下图:
1.最右边 Class prefix 的位置可以输入你需要命名的前缀, 然后回车,这样你在创建别的类等的时候,就会添加上前缀。
2.ipad 使用启动的时候,默认加载的是LaunchScreen.xib上的内容,在这上面可以添加东西,或者添加 加载的图片,和iPhone 一样 修改这个地方:
strong weak
strong为强引用 weak 为弱应用, 当被弱引用修饰的为nil 时会制动回收,但是ioS有了一种处理,UIPopoverController不会crash,ios7 处理这种的方式是 加一个属性(strong),让这个值赋值给属性声明的值,这样就不会crash 被dealloc 回收了。既为:self.popover = popover ,其中self.popover为自己声明的属性。
什么是UIPopoverController
是iPad开发中常见的一种控制器(在iPhone上不允许使用)
跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController
它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面
使用步骤
要想显示一个UIPopoverController,需要经过下列步骤
设置内容控制器
由于UIPopoverController直接继承自NSObject,不具备可视化的能力
因此UIPopoverController上面的内容必须由另外一个继承自UIViewController的控制器来提供,这个控制器称为“内容控制器”
设置内容的尺寸
显示出来占据多少屏幕空间
设置显示的位置
从哪个地方冒出来
设置内容控制器
设置内容控制器有3种方法
在初始化UIPopoverController的时候传入一个内容控制器
- (id)initWithContentViewController:(UIViewController *)viewController;
@property (nonatomic, retain) UIViewController *contentViewController;
- (void)setContentViewController:(UIViewController *)viewController animated:(BOOL)animated;
以上方法和属性都是UIPopoverController的
设置内容的尺寸
设置内容的尺寸有2种方法
@property (nonatomic) CGSize popoverContentSize;
- (void)setPopoverContentSize:(CGSize)size animated:(BOOL)animated;
以上方法和属性都是UIPopoverController的
设置显示的位置
设置显示的位置有2种方法
围绕着一个UIBarButtonItem显示(箭头指定那个UIBarButtonItem)
- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;
item :围绕着哪个UIBarButtonItem显示
arrowDirections :箭头的方向
animated :是否通过动画显示出来
围绕着某一块特定区域显示(箭头指定那块特定区域)
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;
rect :指定箭头所指区域的矩形框范围(位置和尺寸)
view :rect参数是以view的左上角为坐标原点(0,0)
arrowDirections :箭头的方向
animated :是否通过动画显示出来
如果想让箭头指向某一个UIView的做法有2种做法,比如指向一个button
方法1
[popover presentPopoverFromRect:button.bounds inView:button permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
方法2
[popover presentPopoverFromRect:button.frame inView:button.superview permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
例子:
为导航栏上的点击按钮的响应方法
//弹出popover菜单
- (IBAction)popButtonAction:(id)sender {
//创建一个UIPopover 注意继承NSObject
//1. 显示的内容
Menu *menu = [[Menu alloc] init];
//2. 创建UIPopoverController
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:menu];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navi];
//3. 设置尺寸大小
popover.popoverContentSize = CGSizeMake(320, 320);
//4. 从哪里显示出来 指向点击的按钮
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
----------------------------------------------------------------------------------------------------------------------------------------------------------