为小白学iOS约束打造 -- NSLayoutConstraint
来源:互联网 发布:软件项目实施进度计划 编辑:程序博客网 时间:2024/05/18 02:24
原理如下:
代码自己将其拷贝到viewcontroller.m参看
#import "ViewController.h"
#define WIDTH [UIScreen mainScreen].bounds.size.width
#define HEIGHT [UIScreen mainScreen].bounds.size.height
@interface ViewController ()
@property (nonatomic, strong) UIView *myView1;
@property (nonatomic, strong) UIView *myView2;
@property (nonatomic, strong) UIView *myView3;
@end
@implementation ViewController
- (UIView *)myView1
{
if(!_myView1)
{
self.myView1 = [[UIView alloc]init];
[self.myView1 setBackgroundColor:[UIColor blueColor]];
[self.myView1 setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:self.myView1];
}
return _myView1;
}
- (UIView *)myView2
{
if(!_myView2)
{
self.myView2 = [[UIView alloc]init];
[self.myView2 setBackgroundColor:[UIColor blueColor]];
[self.myView2 setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:self.myView2];
}
return _myView2;
}
- (UIView *)myView3
{
if(!_myView3)
{
self.myView3 = [[UIView alloc]init];
[self.myView3 setBackgroundColor:[UIColor blueColor]];
[self.myView3 setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:self.myView3];
}
return _myView3;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor orangeColor]];
[self.view addSubview:self.myView1];
NSLayoutConstraint *myView1Top =
[NSLayoutConstraint constraintWithItem:self.myView1 //给谁加约束
attribute:NSLayoutAttributeTop //给哪个边加约束
relatedBy:NSLayoutRelationEqual //什么关系这里是等于
toItem:self.view //相对于哪个视图
attribute:NSLayoutAttributeTop //相对于这个视图的哪个边
multiplier:1 //多少倍
constant:20]; //距离多少右正左负
NSLayoutConstraint *myView1left = [NSLayoutConstraint constraintWithItem:self.myView1 attribute:NSLayoutAttributeLeft relatedBy:0 toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:10];
[myView1Top setActive:YES];
[myView1left setActive:YES];
NSLayoutConstraint *myView1Width = [NSLayoutConstraint constraintWithItem:self.myView1 attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:(WIDTH-10)/2.0];
NSLayoutConstraint *myView1Height = [NSLayoutConstraint constraintWithItem:self.myView1 attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:(HEIGHT-10)/2.0];
[myView1Height setActive:YES];
[myView1Width setActive:YES];
NSLayoutConstraint *myView2Bottom = [NSLayoutConstraint constraintWithItem:self.myView2 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.myView1 attribute:NSLayoutAttributeHeight multiplier:1 constant:0];
NSLayoutConstraint *myView2Top = [NSLayoutConstraint constraintWithItem:self.myView2 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:20];
NSLayoutConstraint *myView2Left = [NSLayoutConstraint constraintWithItem:self.myView2 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.myView1 attribute:NSLayoutAttributeRight multiplier:1 constant:10];
NSLayoutConstraint *myView2Right = [NSLayoutConstraint constraintWithItem:self.myView2 attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1 constant:-10];
[myView2Bottom setActive:YES];
[myView2Top setActive:YES];
[myView2Left setActive:YES];
[myView2Right setActive:YES];
NSLayoutConstraint *myView3Bottom = [NSLayoutConstraint constraintWithItem:self.myView3 attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:-20];
NSLayoutConstraint *myView3Top = [NSLayoutConstraint constraintWithItem:self.myView3 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.myView1 attribute:NSLayoutAttributeBottom multiplier:1 constant:10];
NSLayoutConstraint *myView3Left = [NSLayoutConstraint constraintWithItem:self.myView3 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:10];
NSLayoutConstraint *myView3Right = [NSLayoutConstraint constraintWithItem:self.myView3 attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1 constant:-10];
[myView3Bottom setActive:YES];
[myView3Top setActive:YES];
[myView3Left setActive:YES];
[myView3Right setActive:YES];
}
- 为小白学iOS约束打造 -- NSLayoutConstraint
- iOS-NSLayoutConstraint(代码约束)
- IOS之NSLayoutConstraint布局约束详解
- NSLayoutConstraint约束
- [iOS] NSLayoutConstraint
- NSLayoutConstraint万能约束公式
- 自定义NSLayoutConstraint约束库
- Swift NSLayoutConstraint 加约束Constraint
- 代码中添加约束(NSLayoutConstraint)
- iOS 10 Auto Layout界面自动布局系列3-使用原生NSLayoutConstraint添加布局约束
- IOS 自适应元素 NSLayoutConstraint
- IOS开发--NSLayoutConstraint
- iOS﹣ Autolayout NSLayoutConstraint
- iOS键盘与NSLayoutConstraint
- iOS NSLayoutConstraint priority
- iOS开发之NSLayoutConstraint
- iOS NSLayoutConstraint priority
- iOS AutoLayout (NSLayoutConstraint + Masonry)
- 宁静致远一身轻
- SQL Server - 数据库恢复的时候停在 Restoring 状态
- Post与Get区别
- 通信之路学习汇总 =>>UE 接入和释放
- 算法学习-链表相加
- 为小白学iOS约束打造 -- NSLayoutConstraint
- 浅谈HTTP中Get与Post的区别
- linux 下 mysql的一些操作命令
- Java 生成随机汉字名称
- jQuery小练习3
- 如何在Ubuntu 14.04上利用HAProxy为WordPress与Nginx构建7层负载均衡器
- 如何识别牛逼的前端工程师
- spring data 整合 couchbase
- java的JVM(java虚拟机)学习笔记