您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  手写约束