zoukankan      html  css  js  c++  java
  • iPhone 6 & iPhone 6 Plus适配

    转载请注明出处:

    http://www.cnblogs.com/dokaygang128/p/4049461.html

    Apple 今年发布了两款新的iPhone机器,iPhone 6 和iPhone 6 plus :

    其中第二幅图是当前主要设备的分辨率情况。这里简单介绍一下这张图。

    首先,第一行Point是我们在工程中Controller的ViewWillAppear方法中打印Controller的View时得到frame的Size;

    第二行是实际系统生成的显示APP位图时的分辨率;

    第三行主要是Plus由于实际的物理分辨率并没有生成的APP位图的分辨率这么大,只有1920*1080,所以显示时有个图片的缩小;

    第四行是没英寸像素点个数,代表屏的清晰度;

    看到这么多的分辨率,大致也知道我们developer 需要做些适配工作。

    适配的方式:

    适配的话主要分为两种方式:自动适配和手工适配(完美适配)

    我们的旧工程用Xcode 6 打开时默认即是自动适配。在真机上运行APP后会发现显示有些糊,并且和系统的某些APP对比发现navigationbar是变高的。这个主要是因为自动适配系统是将旧Frame大小的位图直接放大进行显示的,不信你打印一下frame看看,宽度还是万年不变的320.

    想要打开手动适配模式,有两种方式可供选择:

    1.使用大的LaunchImage,原来@2x的1.5倍图像。貌似Xcode6强制使用Asset Catalog。

    2.使用一个Launch Xib作为启动画面。

    经典适配步骤:

    1.有Nib文件的,首先检查Xib文件中各个View的Autoresizing是否正确,主要是宽度进行自适应与右边距。优先设置Controller的

    2.检查.m文件中是否有不合理的硬编码320(或者基于320进行计算的)宽度;有的话用View.Width进行替换;

    3.检查.m中初始化的View,其Autoresizing是否正确。

    杂项:

    1.有些高度的计算是硬编码的,只考虑了480和568.

    2.有些时候Autoresizing计算宽度实在是不好用了,可以在layoutSubviews或ViewWillAppear中修改;

    3.必要时手动调整frame;

    4.注意时序问题;

  • 相关阅读:
    常见保护方式简介
    各种保护机制绕过手法
    ShellCode框架(Win32ASM编写)
    单例模式
    HTTP1.0、HTTP1.1、HTTP2.0的关系和区别
    java集合提供的排序算法
    Dubbox以及微服务
    进程栈帧
    java线程池
    Java多态的实现
  • 原文地址:https://www.cnblogs.com/dokaygang128/p/4049461.html
Copyright © 2011-2022 走看看