IOS学习 autolayout 自动布局 代码与界面设置截图
2016-03-23 16:12
771 查看
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view.
UIView *blueView = [[UIView
alloc]init];
//不用设置Frame
blueView.backgroundColor = [UIColor
blueColor];
[self.view
addSubview:blueView];
//一定要把View的autoresizing属性禁掉
blueView.translatesAutoresizingMaskIntoConstraints =
NO;
/*
constraintWithItem: 被约束的view
attribute: 被约束的view的属性
relatedBy:设置与参考View的关系
NSLayoutRelationLessThanOrEqual = -1, 小于等于
NSLayoutRelationEqual = 0, 等于
NSLayoutRelationGreaterThanOrEqual = 1,大于等于
toItem: 参照的view
attribute: 参照的view的属性**/
//添加blueView的顶部约束
NSLayoutConstraint *blueTop = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1
constant:20];
//把约束添加到控制的父view上
[self.view
addConstraint:blueTop];
//添加blueView的左侧约束
NSLayoutConstraint *blueLeft = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:20];
[self.view
addConstraint:blueLeft];
//添加blueView的右侧约束
NSLayoutConstraint *blueRight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:-20];
[self.view
addConstraint:blueRight];
//添加blueView的高度约束
NSLayoutConstraint *blueHeight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
//没有参照
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:50];
//高和宽没有参照的约束添加到父view和本身blueView上,都可以
[self.view
addConstraint:blueHeight];
// [blueView addConstraint:blueHeight];
UIView *redView = [[UIView
alloc]init];
redView.backgroundColor = [UIColor
redColor];
[self.view
addSubview:redView];
redView.translatesAutoresizingMaskIntoConstraints =
NO;
//添加redView的顶部约束
NSLayoutConstraint *redTop = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTop
//顶部
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeBottom
//底部
multiplier:1
constant:20];
//把约束添加到控制的父view上
[self.view
addConstraint:redTop];
//添加redView的右侧约束
NSLayoutConstraint *redRight= [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTrailing
//尾部对齐
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeTrailing
//尾部对齐
multiplier:1
constant:0];
[self.view
addConstraint:redRight];
//添加redView的高度约束
NSLayoutConstraint *redHeight = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeHeight
multiplier:1
constant:0];
[self.view
addConstraint:redHeight];
//添加redView的宽度约束
NSLayoutConstraint *redWidth = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0];
[self.view
addConstraint:redWidth];
}
[super
viewDidLoad];
// Do any additional setup after loading the view.
UIView *blueView = [[UIView
alloc]init];
//不用设置Frame
blueView.backgroundColor = [UIColor
blueColor];
[self.view
addSubview:blueView];
//一定要把View的autoresizing属性禁掉
blueView.translatesAutoresizingMaskIntoConstraints =
NO;
/*
constraintWithItem: 被约束的view
attribute: 被约束的view的属性
relatedBy:设置与参考View的关系
NSLayoutRelationLessThanOrEqual = -1, 小于等于
NSLayoutRelationEqual = 0, 等于
NSLayoutRelationGreaterThanOrEqual = 1,大于等于
toItem: 参照的view
attribute: 参照的view的属性**/
//添加blueView的顶部约束
NSLayoutConstraint *blueTop = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1
constant:20];
//把约束添加到控制的父view上
[self.view
addConstraint:blueTop];
//添加blueView的左侧约束
NSLayoutConstraint *blueLeft = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:20];
[self.view
addConstraint:blueLeft];
//添加blueView的右侧约束
NSLayoutConstraint *blueRight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:-20];
[self.view
addConstraint:blueRight];
//添加blueView的高度约束
NSLayoutConstraint *blueHeight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
//没有参照
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:50];
//高和宽没有参照的约束添加到父view和本身blueView上,都可以
[self.view
addConstraint:blueHeight];
// [blueView addConstraint:blueHeight];
UIView *redView = [[UIView
alloc]init];
redView.backgroundColor = [UIColor
redColor];
[self.view
addSubview:redView];
redView.translatesAutoresizingMaskIntoConstraints =
NO;
//添加redView的顶部约束
NSLayoutConstraint *redTop = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTop
//顶部
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeBottom
//底部
multiplier:1
constant:20];
//把约束添加到控制的父view上
[self.view
addConstraint:redTop];
//添加redView的右侧约束
NSLayoutConstraint *redRight= [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTrailing
//尾部对齐
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeTrailing
//尾部对齐
multiplier:1
constant:0];
[self.view
addConstraint:redRight];
//添加redView的高度约束
NSLayoutConstraint *redHeight = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeHeight
multiplier:1
constant:0];
[self.view
addConstraint:redHeight];
//添加redView的宽度约束
NSLayoutConstraint *redWidth = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:blueView
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0];
[self.view
addConstraint:redWidth];
}
相关文章推荐
- iOS与JS交互实战篇(ObjC版)
- iOS开发:创建真机调试证书
- iOS KVC 和 KVO 简单介绍
- IOS绘图的基本步骤
- iOS Core Data简单演练
- iOS 开发--转场动画
- ios XCODE 7.2版本的多语言本地化国际化
- IOS中关于闭包的使用
- shouldAutorotate不调用问题的解决
- ListView - 仿照IOS拉到上下底部仍可继续拉并自动回弹
- iOS - 类扩展与分类的区别
- iOS 申请测试用的远程推送证书
- Undefined symbols for architecture arm64:问题解决方法
- 百度地图集成问题(ios)
- IOS 开发创建xib文件并且与视图控制器绑定
- iOS 动画Animation-4-2: CALayer子类:CAGradientLayer,CATextLayer,CATiledLayer
- 手势解锁demo
- iOS 宏(define)与常量(const)使用
- 探究iOS开发中多线程之间的通信
- iOS开发小技巧