LayoutConstraint

来源:互联网 发布:医学生刷题软件 编辑:程序博客网 时间:2024/06/18 15:53

在xcode6中,自动布局加入了一些新的功能,可以方便、快速的进行ui布局。个人尝试了下,使用起来感觉并不是很好,虽然可以减少代码量,但是比较累赘,并不清晰,所以还是用代码进行控制来的比较好些



    UIButton *bt=[UIButton buttonWithType:UIButtonTypeCustom];
    bt.frame=CGRectZero;
    [bt setTitle:@"ceo" forState:0];
    [bt setBackgroundColor:[UIColor redColor]];
    bt.translatesAutoresizingMaskIntoConstraints=NO;
    [self.view addSubview:bt];
    
    [bt LayoutAttributeTopForItem:self.view withConstant:100];
    [bt LayoutAttributeBottomForItem:self.view withConstant:-100];
    [bt LayoutAttributeCenterXForItem:self.view];
    [bt LayoutAttributeWidthForItem:self.view WidthConstant:self.view.frame.size.width-20];


#import <UIKit/UIKit.h>

@interface UIView (Ex)
-(void)LayoutAttributeLeftForItem:(UIView *)item withConstant:(float)constant;
-(void)LayoutAttributeRightForItem:(UIView *)item withConstant:(float)constant;

-(void)LayoutAttributeTopForItem:(UIView *)item withConstant:(float)constant;
-(void)LayoutAttributeBottomForItem:(UIView *)item withConstant:(float)constant;

-(void)LayoutAttributeLeadingForItem:(UIView *)item withConstant:(float)constant;
-(void)LayoutAttributeTrailingForItem:(UIView *)item withConstant:(float)constant;

-(void)LayoutAttributeWidthForItem:(UIView *)item WidthConstant:(float)constant;
-(void)LayoutAttributeHeightForItem:(UIView *)item WidthConstant:(float)constant;

-(void)LayoutAttributeCenterXForItem:(UIView *)item;
-(void)LayoutAttributeCenterYForItem:(UIView *)item;

//NSLayoutAttributeBaseline,
//NSLayoutAttributeLastBaseline = NSLayoutAttributeBaseline,
//NSLayoutAttributeFirstBaseline NS_ENUM_AVAILABLE_IOS(8_0),
@end


#import "UIView+Ex.h"

@implementation UIView (Ex)

-(void)LayoutAttributeLeftForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeLeft
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeLeft multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeRightForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeRight
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeRight multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}


-(void)LayoutAttributeTopForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeTop
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeTop multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeBottomForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeBottom
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeBottom multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}

-(void)LayoutAttributeLeadingForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeLeading
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeLeading multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeTrailingForItem:(UIView *)item withConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeTrailing
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeTrailing multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeWidthForItem:(UIView *)item WidthConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeWidth
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:nil
                                                                attribute:NSLayoutAttributeWidth
                                                               multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeHeightForItem:(UIView *)item WidthConstant:(float)constant{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeHeight
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:nil
                                                                attribute:NSLayoutAttributeHeight
                                                               multiplier:1
                                                                 constant:constant];
    [item addConstraint:constraint];
}

-(void)LayoutAttributeCenterXForItem:(UIView *)item{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeCenterX
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeCenterX multiplier:1
                                                                 constant:0];
    [item addConstraint:constraint];
}
-(void)LayoutAttributeCenterYForItem:(UIView *)item{
    NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:self
                                                                attribute:NSLayoutAttributeCenterY
                                                                relatedBy:NSLayoutRelationEqual
                                                                   toItem:item
                                                                attribute:NSLayoutAttributeCenterY multiplier:1
                                                                 constant:0];
    [item addConstraint:constraint];
}
@end

0 0
原创粉丝点击