屏幕适配

基本概念

  • 适配

  • 概念:适合兼容各种不同的情况

    • 系统适配:针对不同系统版本进行适配
    • 屏幕适配:针对不同大小的屏幕尺寸进行适配
  • 点和像素

    • 屏幕是由无数个点组成的,点是由像素组成的
      -retina屏幕:一个点由四个像素组成,可以显示四种颜色
  • 屏幕适配的发展史

写固定的值:iphone4之前
autoresizingMask:iphone5-5s
autolayout:ios6
sizeClasses:iPad

AutoresizingMask

  • 注意:
    • storyboard支持三种适配技术:
      - autoresizingMask
      - autolayout
      - sizeClasses
    • autoresizingMask和autolayout不兼容
    • sizeClasses的使用依托于autolayout
    • 所以要体验autoresizingMask的功能,就要禁止掉其他两种适配技术
  • storyboard使用autoresizingMask
    • 1.与父控件的间距
      - 同时勾选左边和右边,只有左边会生效
      - 同时勾选上边和下边,只有上边会生效
    • 2.水平方向的线
    • 3.竖直方向的线
  • 代码中使用autoresizingMask
    • 属性设置:

      • LeftMargin:距离父控件左边的尺寸是可以拉伸的
      • RightMargin:距离父控件的右边是可以拉伸的
      • BottomMargin:距离父控件的底部是可以拉伸的
      • TopMargin :距离父控件的顶部是可以拉伸的
      • Height:高度会跟随父控件的高度进行拉伸
      • Width:宽度会跟随父控件的宽度进行拉伸
    • 局限性:

      • 只能解决子控件和父控件之间的相对关系问题,有些任务无法实现

Autolayout

  • 自动布局:专门用来布局UI界面,可以解决任何控件之间的相对关系
  • 两个核心概念
    • 约束:决定控件的位置和尺寸
    • 参照:相对于谁来添加的约束
  • 注意:使用autolayout就不要使用frame

  • autolayout的警告和错误

    • 警告:控件的frame不匹配所添加的约束
    • 错误:缺乏必要的约束或者是约束冲突
  • 自动布局的核心计算公式

    • object1.property1 = (object2.property2 * multiplier)+ constantValue
    • 控件1的高度 等于 控件2的高度乘以0.5 加上20
  • 利用autolayout可以实现的功能

    • 动态修改UILabel显示的文字,实现包裹
    • 父控件的高度可以随着子控件内容进行伸缩
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容