屏幕适配、Autoresizing、Autolayout

屏幕适配、Autoresizing、Autolayout、

标签(空格分隔): ios基础

屏幕适配

iPhone4之前

  • 没有适配,不用适配
  • 经常会出现坐标值写死的代码
//#define ScreenW 320
//#define ScreenH 480
#define ScreenW [UIScreen mainScreen].bounds.size.width
#define ScreenH [UIScreen mainScreen].bounds.size.height

// 创建一个显示在屏幕右下角的按钮
CGFloat buttonW = 100;
CGFloat buttonH = 50;
button.frame = CGRectMake(ScreenW - buttonW, ScreenH - buttonH, buttonW, buttonH);

iPad出现以后

  • 需要横竖屏适配
  • 出现了一种方便的屏幕适配技术:Autoresizing
    • 局限性:仅仅能解决子控件和父控件之间的相对关系问题

iOS6开始(Xcode4开始)

  • 出现了一种新的屏幕适配技术:Autolayout
    • 解决任何控件之间的相对关系问题

iOS8开始(Xcode6开始)

  • 出现了一种新的屏幕适配技术:Sizeclass

Autoresizing

注意点:
- UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
- 距离父控件左边的间距是伸缩的
- UIViewAutoresizingFlexibleRightMargin = 1 << 2,
- 距离父控件右边的间距是伸缩的
- UIViewAutoresizingFlexibleTopMargin = 1 << 3,
- 距离父控件上边的间距是伸缩的
- UIViewAutoresizingFlexibleBottomMargin = 1 << 5
- 距离父控件下边的间距是伸缩的
- UIViewAutoresizingFlexibleWidth = 1 << 1,
- 宽度跟随父控件宽度进行伸缩
- UIViewAutoresizingFlexibleHeight = 1 << 4,
- 高度跟随父控件高度进行伸缩

Autolayout

2个核心概念

  • 约束

    • 尺寸约束
      • width约束
      • height约束
    • 位置约束
      • 间距约束(上下左右间距)
  • 参照

    • 所添加的约束跟哪个控件有关(相对于哪个控件来说)

常见单词

  • Leading -> Left -> 左边
  • Trailing -> Right -> 右边

UILabel实现包裹内容

  • 设置宽度约束为 <= 固定值
  • 设置位置约束
  • 不用去设置高度约束
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值