iOS 640*1136分辨率编程小结

因为iPhone5 的新分辨率,最近大家都忙着在更新应用以支持新的分辨率,虽然新版的xcode4.5 可以直接在xib里面创建 4寸屏的view,但实际上它却没那么智能,它支持4寸屏了,但拉出的控件即便是在4寸屏幕的环境下它的frame值仍然是以4寸屏幕为基础的,也就是说如果你的view的frame 为 (0,0,320,548),设置了高度宽度适应,它在3.5寸屏幕环境运行的时候这个view的值仍然是(0,0.320,548),就算它的值看起来在3.5寸下完全显示,但请不要被它的假像所蒙骗了.

有可能你觉得这个值没什么关系,当然,如果你的所有控件都是通过xib拉出来的,那没什么.但很多时候情况并不是那么简单,有时你要将一个view通过代码放在一个你想要的位置,那时候你就需要它的坐标了.在以前,你可以把它写死,因为以前是统一分辨率,但现在不同了.不同分辨率下控件的坐标和大小要进行调整.

本人虽然曾经做过android的开发,但是对多分辨率的处理却不是很在行,想了几种方案,觉得最方便的是以下这种.

在controller的viewDidLoad 或者 loadView方法中设定 self.view.frame 

 

//适应屏幕分辨率
CGRect frame = self.view.frame;
frame.size.height = [UIScreen mainScreen].bounds.size.height - 20;
self.view.frame = frame;

 

 因为在当前界面是带有状态栏,所以在高度那里减去20 ,如果是带有导航条的,就再减去44,如果带有tabbar的,就减去48

在此方法设定之后,controller 的  view.frame就是实际当中的大小,也就是说它的值是准确的,那接下来加入其他view的时候一切的计算都将会变得简单很多.

比如创建一个tableView,上边距为20,下边距20

 

UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, 320, self.view.frame.size.height - 40) style:UITableViewStylePlain];
    [self.view addSubview:tableView];

 

效果如下:

4寸屏幕 3.5寸屏




 

代码放在附件中,如果哪位朋友有更好解决办法的话,希望可以多多交流. 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值