浅谈autolayout自动布局

2016-05-28  本文已影响161人  游某人

屏幕适配

点和像素

fenbianlv.png

简介(屏幕适配发展史)

autoresizingMask

autoerisizingMarsk.png
//控件尺寸随屏幕变化拉伸
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

    //控件的位置固定在右下角
    self.pageControl.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
    UIViewAutoresizingFlexibleLeftMargin 距离父控件的左边是可以伸缩的
     UIViewAutoresizingFlexibleBottomMargin 距离父控件的底部是可以伸缩的
     UIViewAutoresizingFlexibleRightMargin 距离父控件的右边是可以伸缩的
     UIViewAutoresizingFlexibleTopMargin 距离父控件的顶部是可以伸缩的
     UIViewAutoresizingFlexibleHeight 高度跟随父控件的高度进行伸缩
     UIViewAutoresizingFlexibleWidth 宽度跟随父控件的宽度进行伸缩

Autolayout

Autolayout的2个核心概念

自动布局的核心计算公式

添加约束的规则

在storyboard中添加约束

![Upload yuesu.png failed. Please try again.]

在代码中实现约束

 - (void)addConstraint:(NSLayoutConstraint *)constraint;
 - (void)addConstraints:(NSArray *)constraints;
 // 左边约束
    NSLayoutConstraint *leftlc_b = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:30];
    [self.view addConstraint:leftlc_b];

基于Autolayout的动画

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

VFL语言

 H:[cancelButton(72)]-12-[acceptButton(50)]
//canelButton宽72,acceptButton宽50,它们之间间距12

Masonry

上一篇 下一篇

猜你喜欢

热点阅读