适配4inch(未完)

1. 项目中加个1136*640的启动页面图片,命名 Default-568@2x.png

2. ios模拟器硬件->设备->iPhone(Retina 4-inch)

3. 动态更改控件布局和高度[UIScreen mainScreen].bounds.size.height


代码中不要写320和480什么的初始化坐标,要用屏幕高度和宽度初始化


#define Screen_height   [[UIScreen mainScreen] bounds].size.height
#define Screen_width    [[UIScreen mainScreen] bounds].size.width

CGRect screenBounds = [ [UIScreenmainScreen]bounds];

screenBounds.origin.y = 0

screenBounds.size.height = 480

CGRect viewFrame = [[UIScreenmainScreen]applicationFrame];

viewFrame.origin.y = 20

viewFrame.size.height = 460


例如:
如果想实现一个UILabel控件始终位于:距离屏幕下边缘140高的位置,则不能这样写:
    lblMsg = [[UILabel alloc] initWithFrame:CGRectMake(150,  320, 150, 30)];
这样是不行的,因为它的Y值已经固定了,所以它的位置不会随屏幕的拉伸而改变。如果在4寸屏的时候,它就会位于屏幕中间的位置了,而不是下方。


解决办法:可以使用
    lblMsg = [[UILabel alloc] initWithFrame:CGRectMake(150,  [UIScreen mainScreen].bounds.size.height - 140, 150, 30)];
这种情况下,UILabel的Y值是相对于屏幕尺寸而变化的,所以就实现了在3.5寸屏和4寸屏下,始终都位于距离屏幕底部 140高的位置上。 


修改程序界面,应尽量获取当前屏幕的size,而不是写死的值(尽量不要写死480,而根据当前屏幕[UIScreen mainScreen].bounds)选择能在分辨率改变时省去不少麻烦
判断设备是不是iPhone 5 iPod 5
#define IS_IPHONE_5 (fabs((double)[[UIScreen mainScreen] bounds].size.height - (double)568)<DBL_EPSILON) 


同样,对于控件的高度等,也是需要相对定位的,不能写死。这样就实现了兼容


stackoverflow上代码,如何判断iphone 5

[html]  view plain copy
  1. #define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )  

如果要兼任ipad

[html]  view plain copy
  1. <p class="p1">#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )<span class="s1">568</span> ) < DBL_EPSILON )</p><p class="p1">#define IS_IPHONE ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @<span class="s2">"iPhone"</span> ] )</p><p class="p1">#define IS_IPHONE_SIMULATOR ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @<span class="s2">"iPhone Simulator"</span> ] )</p><p class="p1">#define IS_IPOD   ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @<span class="s2">"iPod touch"</span> ] )</p><p class="p1">#define IS_IPHONE_5 ( ((IS_IPHONE) || (IS_IPHONE_SIMULATOR)) && IS_WIDESCREEN )</p>  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值