IOS开发之手写约束
2016-05-06 00:00
561 查看
摘要: 手写约束
//
// ViewController.m
// 02-手写约束
//
// Created by 鹿微微鹿 on 16/5/5.
// Copyright (c) 2016年 鹿微微鹿. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//手动添加约束
//1.必须先将需要添加约束的视图创建出来
//并且添加到界面上
//2.不需要设置frame
//关闭autoresizing
//1.创建一个红色视图
UIView *redView = [[UIView alloc]init];
redView.backgroundColor = [UIColor redColor];
//关闭autoresizing
redView.translatesAutoresizingMaskIntoConstraints = NO;
//创建一个绿色视图
UIView *greenView = [[UIView alloc]init];
greenView.backgroundColor = [UIColor greenColor];
greenView.translatesAutoresizingMaskIntoConstraints = NO;
//显示在界面上
[self.view addSubview:redView];
[self.view addSubview:greenView];
//2.添加约束(红色视图一值显示在左上角
//到屏幕顶部和左边的距离为50,宽高200)
//top
//红色视图的顶部 = view顶部*1 + 50
//redView.top = self.view.top*1 + 50;
//参数1的参数2参数3参数4的参数5 * 参数6 + 参数7
NSLayoutConstraint *redtopConstraint = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:50];
//left
NSLayoutConstraint *redLeftConstraint = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:50];
//width
NSLayoutConstraint *redWith = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:0 multiplier:0 constant:200];
//height
NSLayoutConstraint *redHeight = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:0 multiplier:0 constant:200];
//b.添加约束
[self.view addConstraints:@[ redtopConstraint,redLeftConstraint]];
[redView addConstraints:@[ redWith,redHeight]];
//=============绿色视图的约束==============
//左对齐
NSLayoutConstraint *greenAlignLeft = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeLeading multiplier:1 constant:0];
//到红色视图底部的距离
NSLayoutConstraint *greenTop = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeBottom multiplier:1 constant:50];
//宽度
NSLayoutConstraint *greenWidth = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
//高度
NSLayoutConstraint *greenHeight = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0];
[self.view addConstraints:@[greenHeight,greenWidth,greenAlignLeft,greenTop]];
}
@end
//
// ViewController.m
// 02-手写约束
//
// Created by 鹿微微鹿 on 16/5/5.
// Copyright (c) 2016年 鹿微微鹿. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//手动添加约束
//1.必须先将需要添加约束的视图创建出来
//并且添加到界面上
//2.不需要设置frame
//关闭autoresizing
//1.创建一个红色视图
UIView *redView = [[UIView alloc]init];
redView.backgroundColor = [UIColor redColor];
//关闭autoresizing
redView.translatesAutoresizingMaskIntoConstraints = NO;
//创建一个绿色视图
UIView *greenView = [[UIView alloc]init];
greenView.backgroundColor = [UIColor greenColor];
greenView.translatesAutoresizingMaskIntoConstraints = NO;
//显示在界面上
[self.view addSubview:redView];
[self.view addSubview:greenView];
//2.添加约束(红色视图一值显示在左上角
//到屏幕顶部和左边的距离为50,宽高200)
//top
//红色视图的顶部 = view顶部*1 + 50
//redView.top = self.view.top*1 + 50;
//参数1的参数2参数3参数4的参数5 * 参数6 + 参数7
NSLayoutConstraint *redtopConstraint = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:50];
//left
NSLayoutConstraint *redLeftConstraint = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:50];
//width
NSLayoutConstraint *redWith = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:0 multiplier:0 constant:200];
//height
NSLayoutConstraint *redHeight = [NSLayoutConstraint
constraintWithItem:redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:0 multiplier:0 constant:200];
//b.添加约束
[self.view addConstraints:@[ redtopConstraint,redLeftConstraint]];
[redView addConstraints:@[ redWith,redHeight]];
//=============绿色视图的约束==============
//左对齐
NSLayoutConstraint *greenAlignLeft = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeLeading multiplier:1 constant:0];
//到红色视图底部的距离
NSLayoutConstraint *greenTop = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeBottom multiplier:1 constant:50];
//宽度
NSLayoutConstraint *greenWidth = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
//高度
NSLayoutConstraint *greenHeight = [NSLayoutConstraint
constraintWithItem:greenView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:redView attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0];
[self.view addConstraints:@[greenHeight,greenWidth,greenAlignLeft,greenTop]];
}
@end
相关文章推荐
- IOS开发之AVAudioPlayer的基本使用
- ios设备型号,调试代码
- iOS: 极光推送
- iOS之runtime
- iOS代码加密常用加密方式
- iOS开发最简单的让你的Cell自适应高度
- iOS开发-你真的会用SDWebImage?
- ios开发环境配置及cordova安装与常用命令
- iOS 基础知识
- iOS---archive(归档)的总结
- ios ---对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- iOS 几种TouchEvent操作
- iOS-MJExtension一句话搞定对象归档
- iOS怎么给颜色设置透明度?
- ios中不能以new开头
- 关于xcode7.3设置启动图片的小提示
- iOS应用数据存储的常用方式
- [iOS] WSHorizontalPickerView 图片水平滚动封装
- ios学习笔记之三- iPhone模拟器基本操作
- iOS -- MJExtension框架介绍