IOS代码实现自动布局

代码实现自动布局

直接上代码

UIImage *icon = [UIImage imageNamed:menu.menuIcon];
CGSize menuIconSize = icon.size;
//在父控件中垂直居中
NSLayoutConstraint *menuIconYConstraint = [NSLayoutConstraint constraintWithItem:_menuIcon attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f];
//与父控件左侧保持20
NSLayoutConstraint *menuIconLeftConstraint = [NSLayoutConstraint constraintWithItem:_menuIcon attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeading multiplier:1.0f constant:20.0f];
//固定控件高度
NSLayoutConstraint* menuIconHeightConstraint = [NSLayoutConstraint constraintWithItem:_menuIcon attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:menuIconSize.height];
//固定控件宽度
NSLayoutConstraint* menuIconWidthConstraint = [NSLayoutConstraint constraintWithItem:_menuIcon attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:menuIconSize.width];
//将使用AutoLayout的方式来布局
[_menuIcon setTranslatesAutoresizingMaskIntoConstraints:NO];
menuIconYConstraint.active = YES;
menuIconLeftConstraint.active = YES;
menuIconHeightConstraint.active = YES;
menuIconWidthConstraint.active = YES;


CGSize menuNameSize = [NSString stringSizeWithText:menu.menuName andMaxSize:CGSizeMake(MAXFLOAT, MAXFLOAT) andFont:[UIFont systemFontOfSize:14]];
//在父控件中垂直居中
NSLayoutConstraint *menuNameYConstraint = [NSLayoutConstraint constraintWithItem:_menuName attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];
//固定控件左侧到同级控件右侧的距离
NSLayoutConstraint *menuNameLeftConstraint = [NSLayoutConstraint constraintWithItem:_menuName attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.menuIcon attribute:NSLayoutAttributeRight multiplier:1.0 constant:20];
//固定控件宽度
NSLayoutConstraint *menuNameWithContraint = [NSLayoutConstraint constraintWithItem:_menuName attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:menuNameSize.width];
//固定控件高度
NSLayoutConstraint *menuNameHeightContraint = [NSLayoutConstraint constraintWithItem:_menuName attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:menuNameSize.height];
//将使用AutoLayout的方式来布局
[_menuName setTranslatesAutoresizingMaskIntoConstraints:NO];
menuNameYConstraint.active = YES;
menuNameWithContraint.active = YES;
menuNameLeftConstraint.active = YES;
menuNameHeightContraint.active = YES;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值