zoukankan      html  css  js  c++  java
  • 自动布局使用

    1. ios5.0开始出现ARC ios6.0出现AutoLayout

    2. 在Autolayout之前,有Autoresizing可以作屏幕适配。Autoresizing使用:

    typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone = 0,
    UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
    UIViewAutoresizingFlexibleWidth = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin = 1 << 3,
    UIViewAutoresizingFlexibleHeight = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    };
    uiview.autoresizingMask=UIViewAutoresizing;

    3. Autoresizing和AutoLayout不能同时使用。

    4. 代码实现Autolayout的注意点

    • 要先禁止autoresizing功能
      view.translatesAutoresizingMaskIntoConstraints = NO;

    • 添加约束之前,一定要保证相关控件都已经在各自的父控件上

    • 使用Autolayout后就不要再给view设置frame

    • 约束NSLayoutConstraint要加到最近的公共父控件上

    5. 在修改了约束之后,执行下面代码实现动画效果

    [UIView animateWithDuration:1.0 animations:^{
        [添加了约束的view layoutIfNeeded];
    }];
    

    6. UILabel可以通过设置约束来实现大小随文字内容改变。

    • 设置两个位置的约束后,再设置一个Equal类型的Height Constraint,可以让label在宽度固定的情况下,高度自由伸缩。

    • 设置两个位置的约束后,再设置一个Less Than or Equal类型的Height Constraint,可以让label在小于一定宽度的范围内自由伸缩。

    • 可以同时设置两个Height(Width)约束,两个约束类型分别为Less Than or Equal和Greater Than or Equal。保证Height(Width)在一定范围之内。

  • 相关阅读:
    Alpha发布——美工+文案展示博客
    021_func
    020_with
    018_IO
    017_set
    016_dict
    015_string
    012_list
    010_ternaryOperation
    008_standard_lib_os
  • 原文地址:https://www.cnblogs.com/coderkl/p/4320305.html
Copyright © 2011-2022 走看看