屏幕适配

Autolayout自动布局实现的方法一:storyboard的

2016-04-07  本文已影响608人  南波万_

Autolayout简介

Autolayout自动布局方法之一:Main.storyboard的实现

顾名思义,在Main.storyboard拖入可视化的控件进行Autolayout自动布局约束,其实在storyboard拖入控件的Autolayout

QQ20160407-2.jpg QQ20160407-3.jpg QQ20160407-4.jpg

Autolayout自动布局方法之二:代码的实现

UIView *redView = [[UIView alloc]init];
  
  redView.backgroundColor = [UIColor redColor];
  
  redView.translatesAutoresizingMaskIntoConstraints = NO;
  
  [self.view addSubview:redView];
  
  //添加约束,距离顶部20
  NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:redView.superview attribute:NSLayoutAttributeTop multiplier:1.0 constant:20];
  [self.view addConstraint:topConstraint];
  
  //添加约束,距离父控件左边10
  NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:redView.superview attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10];
  [self.view addConstraint:leftConstraint];
  
  //添加约束,距离父控件右边10
  NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:redView.superview attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10];
  [redView.superview addConstraint:rightConstraint];
  
  //添加约束,固定高度50
  NSLayoutConstraint *widthContraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:50];
  [redView addConstraint:widthContraint];
  /** **********************greenView************************ */
UIView *greenView = [[UIView alloc]init]; 
greenView.backgroundColor = [UIColor greenColor];
greenView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:greenView];
  //添加约束,距离顶部20
  NSLayoutConstraint *greenTopConstraint = [NSLayoutConstraint constraintWithItem:greenView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:20];
  [self.view addConstraint:greenTopConstraint];
  //添加约束,保持在中间
  NSLayoutConstraint *greenLeftConstraint = [NSLayoutConstraint constraintWithItem:greenView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
  [self.view addConstraint:greenLeftConstraint];
  //添加约束,距离父控件右边10
  NSLayoutConstraint *greenRightConstraint = [NSLayoutConstraint constraintWithItem:greenView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:greenView.superview attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10];
  [redView.superview addConstraint:greenRightConstraint];
  //添加约束,固定高度50
  NSLayoutConstraint *greenWidthContraint = [NSLayoutConstraint constraintWithItem:greenView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:50];
  [greenView addConstraint:greenWidthContraint];

这一段又臭又长的代码最终结果是怎样呢?

QQ20160407-5.jpg QQ20160407-7.jpg
上一篇 下一篇

猜你喜欢

热点阅读