iOS autolayout 的基本使用(用代码添加约束)
2016-04-17 06:54
330 查看
//
// ViewController.m
// 代码添加约束普通版
//
// Created by
唐帅 on 16/4/17.
// Copyright © 2016年 tang. All rights reserved.
//
#import "ViewController.h"
@interface
ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// 添加一个蓝色的view
UIView *blueView = [[UIView
alloc]init];
blueView.backgroundColor = [UIColor
blueColor];
[self.view
addSubview:blueView];
// 添加一个红色的view
UIView *redView = [[UIView
alloc]init];
redView.backgroundColor = [UIColor
redColor];
[self.view
addSubview:redView];
//把autoresizing取消,代表使用autolayout自动布局
blueView.translatesAutoresizingMaskIntoConstraints =
NO;
redView.translatesAutoresizingMaskIntoConstraints =
NO;
/**
* 给添加的view设置约束
* firstItem = secondItem * multiplier + constant
* withItem
代表firstItem
* attribute
属性,比较的位置
* relateBy:比较方式
* toItem
代表 secondItem
* mutiplier:倍数
* constant:数值(对于宽或高的长度)
*/
// 给蓝色view添加约束
NSLayoutConstraint *blueTop = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1
constant:20];
[self.view
addConstraint:blueTop];
NSLayoutConstraint *blueLeft = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:20];
[self.view
addConstraint:blueLeft];
NSLayoutConstraint *blueRight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:-20];
[self.view
addConstraint:blueRight];
NSLayoutConstraint *blueHigh = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeHeight
multiplier:1
constant:100];
[blueView
addConstraint:blueHigh];
// 给红色view添加约束
NSLayoutConstraint *redTop = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeBottom
multiplier:1
constant:50];
[self.view
addConstraint:redTop];
NSLayoutConstraint *redRight = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeRight
multiplier:1
constant:0];
[self.view
addConstraint:redRight];
NSLayoutConstraint *redHeigh = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeHeight
multiplier:1
constant:0];
[self.view
addConstraint:redHeigh];
NSLayoutConstraint *redWidth = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0];
[self.view
addConstraint:redWidth];
}
@end
// ViewController.m
// 代码添加约束普通版
//
// Created by
唐帅 on 16/4/17.
// Copyright © 2016年 tang. All rights reserved.
//
#import "ViewController.h"
@interface
ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// 添加一个蓝色的view
UIView *blueView = [[UIView
alloc]init];
blueView.backgroundColor = [UIColor
blueColor];
[self.view
addSubview:blueView];
// 添加一个红色的view
UIView *redView = [[UIView
alloc]init];
redView.backgroundColor = [UIColor
redColor];
[self.view
addSubview:redView];
//把autoresizing取消,代表使用autolayout自动布局
blueView.translatesAutoresizingMaskIntoConstraints =
NO;
redView.translatesAutoresizingMaskIntoConstraints =
NO;
/**
* 给添加的view设置约束
* firstItem = secondItem * multiplier + constant
* withItem
代表firstItem
* attribute
属性,比较的位置
* relateBy:比较方式
* toItem
代表 secondItem
* mutiplier:倍数
* constant:数值(对于宽或高的长度)
*/
// 给蓝色view添加约束
NSLayoutConstraint *blueTop = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1
constant:20];
[self.view
addConstraint:blueTop];
NSLayoutConstraint *blueLeft = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:20];
[self.view
addConstraint:blueLeft];
NSLayoutConstraint *blueRight = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:-20];
[self.view
addConstraint:blueRight];
NSLayoutConstraint *blueHigh = [NSLayoutConstraint
constraintWithItem:blueView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeHeight
multiplier:1
constant:100];
[blueView
addConstraint:blueHigh];
// 给红色view添加约束
NSLayoutConstraint *redTop = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeBottom
multiplier:1
constant:50];
[self.view
addConstraint:redTop];
NSLayoutConstraint *redRight = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeRight
multiplier:1
constant:0];
[self.view
addConstraint:redRight];
NSLayoutConstraint *redHeigh = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeHeight
multiplier:1
constant:0];
[self.view
addConstraint:redHeigh];
NSLayoutConstraint *redWidth = [NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:blueView attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0];
[self.view
addConstraint:redWidth];
}
@end
相关文章推荐
- 用u盘恢复路由器的ios
- IOS 退出程序代码
- iOS开发之Thrift的二进制数据编解码
- IOS开发之导航控制器原理
- iOS开发之手势交互
- 集成支付宝步骤总结
- IOS博客项目搭建-12-刷新数据-显示最新的微博数提示
- iOS开发总结之自定义非等高cell-xib(方法一)
- iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
- iOS开发总结之自定义非等高cell-storyboard
- iOS RunLoop 初识
- iOS开发第三发库引入--cocoapod的使用及问题解决
- iOS第三方框架集合
- iOS学习笔记31-从图册获取图片和视频
- iOS学习笔记31-从图册获取图片和视频
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- iOS MJRefresh下拉刷新 上拉加载(可添加gif图版) 小结
- 一个很好的仿微博消息浏览功能的Demo
- iOS App图标和启动画面尺寸
- iOS/mac开发的一些知名个人博客