zoukankan      html  css  js  c++  java
  • 2016.01.14 Auto Layout

      随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要。

      在iPhone6出现以前,我们接触的iPhone屏幕只有两种尺寸:320 x 480和320 x 568。所以在那个时候使用传统的绝对定位(Frame)方式进行界面控件的布局还是比较轻松的,因为我们只需要稍微调整一下Frame就可以适配这两种大小的屏幕了。也许这也是为什么虽然AutoLayout从IOS6就已经出现了,但是对于AutoLayout的使用和普及好像都不怎么火热。不过直到最近随着iPhone6/6+设备的出现,AutoLayout又被众多开发者重新审视和重视了。毕竟APPLE推出AutoLayout就是为了帮助开发者的APP更方便简单的适配将来不同苹果设备的不同大小屏幕。

      Xcode为我们提供了Auto Layout系统。但是这里需要先说几个关键字:

    • 基于约束 - 和以往定义frame的位置和尺寸不同,AutoLayout的位置确定是以所谓相对位置的约束来定义的,比如x坐标为superView的中心,y坐标为屏幕底部上方10像素等,每个控件都需要四个约束。
    • 描述性 - 约束的定义和各个view的关系使用接近自然语言或者可视化语言(稍后会提到)的方法来进行描述。
    • 布局系统 - 即字面意思,用来负责界面的各个元素的位置。

    storyboard

      1.这个位置选适应什么样子的屏幕

      

      2.两种方法选择约束

      第一种:

          

      第二种:

          

    code

      在使用code的时候,用系统自带的方式会特别麻烦。所以我们引用第三方库——Masnory,Masonry的github地址:https://github.com/SnapKit/Masonry

      [objc] view plaincopy

      [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
      make.edges.equalTo(superview).with.insets(padding);
      }];
        在代码中需要注意的是,空间左面应该用leading,右面应该用trailing,尽量不要使用left和right。
  • 相关阅读:
    游标cursor
    SQL: EXISTS
    LeetCode Reverse Integer
    LeetCode Same Tree
    LeetCode Maximum Depth of Binary Tree
    LeetCode 3Sum Closest
    LeetCode Linked List Cycle
    LeetCode Best Time to Buy and Sell Stock II
    LeetCode Balanced Binary Tree
    LeetCode Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/immustard/p/5140516.html
Copyright © 2011-2022 走看看