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
- LayoutConstraint
- iOS 自动布局 layoutConstraint
- 关于修改LayoutConstraint实现动画
- 解决IOS7中LayoutConstraint动画无效果的问题
- 轻松搞定二叉树
- myeclipse上安装log4e插件
- Git版本管理工具对比(GitBash、EGit、SourceTree)
- android自定义Countdown控件
- 【v2.x OGE教程 13】 Scene场景使用
- LayoutConstraint
- Android开发者指南-摄像头-Camera
- hdu 4937 base进制只含3456的base数
- sgu 326. Perspective (最大流)
- HashTable的数组和连接两种实现方法(Java版本)
- cesiumjs开发实践(四) 地形介绍
- 转载 -- centOS目录结构详细版
- Remove Element
- android显示TextView文字的倒影效果