84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
关于同时支持iPad和iPhone我有两个问题
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
1.判断,我是定义了一个宏
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
2.不同的布局,如果用xib的话,单独定义ipad的xib,初始化的时候判断,调去相应xib,没用xib的话,变化又很大,那最好单独为iPad写一个viewcontroller了。
当你需要支持横竖屏时,放弃用IB吧,那样会让你的代码更加混乱。 最近参与一个应用的开发,需要兼容苹果各种设备: 1.当你需要判断是ipad还是iphone时,上面兄弟已经给了方法:
2.当你判断是iphone后,但想知道是4还是5时,可以根据长宽判断:
inline bool isPhone_5() { CGSize screenSize = [UIScreen mainScreen].bounds.size; if (screenSize.width == 568.0f || screenSize.height == 568.0f) { return true; } else { return false; } }
你可能会说,ipad中mainScreen的size都是一样的,那你怎么办呢,我们可以加入scale进行判断:
inline bool isPad_3() { CGSize screenSize = [UIScreen mainScreen].bounds.size; CGFloat scale = [[UIScreen mainScreen] scale]; if ((screenSize.width == 1024.0f || screenSize.height == 1024.0f)&& scale == 2) { return true; } else { return false; } }
现在可以判断当前运行的是什么设备,那就根据不同的设备加载不同的xib或者用代码实现不同的布局。
为不同的设备写不同的controller,共用网络层、持久化等基础类。在applicationDidFinishLauching时判断设备类型,为不同的设备初始化不同的controller,赋值给window.rootViewController
applicationDidFinishLauching
window.rootViewController
设计两套界面,在程序里判断设备类型,再调用对应的界面。
用HTML5,自适应界面
布局的话有一个技巧 使用比例放大
1.判断,我是定义了一个宏
2.不同的布局,如果用xib的话,单独定义ipad的xib,初始化的时候判断,调去相应xib,没用xib的话,变化又很大,那最好单独为iPad写一个viewcontroller了。
当你需要支持横竖屏时,放弃用IB吧,那样会让你的代码更加混乱。
最近参与一个应用的开发,需要兼容苹果各种设备:
1.当你需要判断是ipad还是iphone时,上面兄弟已经给了方法:
2.当你判断是iphone后,但想知道是4还是5时,可以根据长宽判断:
你可能会说,ipad中mainScreen的size都是一样的,那你怎么办呢,我们可以加入scale进行判断:
现在可以判断当前运行的是什么设备,那就根据不同的设备加载不同的xib或者用代码实现不同的布局。
为不同的设备写不同的controller,共用网络层、持久化等基础类。在
applicationDidFinishLauching
时判断设备类型,为不同的设备初始化不同的controller,赋值给window.rootViewController
设计两套界面,在程序里判断设备类型,再调用对应的界面。
用HTML5,自适应界面
布局的话有一个技巧 使用比例放大