为了账号安全,请及时绑定邮箱和手机立即绑定

AutoLayout 排列问题?

AutoLayout 排列问题?

holdtom 2019-04-21 20:38:56
_messageBtn=[[UIButtonalloc]initWithFrame:CGRectMake(0,0,160,40)];_messageBtn.center=CGPointMake([UIScreenMainscreen].bounds.size.width/2.,350+3);[_messageBtnsetTitle:@"同意服务协议和支付协议"forState:UIControlStateNormal];[self.viewaddSubview:_messageBtn];我还有一个UILabel,我想用AutoLayout让这个label在_messageBtn左边间隔10的距离,要怎么约束呢?
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

首先,你用autoLayout最好就不要用initWithFrame这样的了~一般这两种布局不能混用哈。
其次,设置“label在button左边,间隔10像素”这个约束是这样写:
[NSLayoutConstraintconstraintWithItem:labelattribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqualtoItem:button
attribute:NSLayoutAttributeLeftmultiplier:1.0constant:-10.0];
然后用两者父view的addContraint方法把上面那个constraint加上就行了。
不过注意这样的话,光指定了label的x坐标,没指定它的y坐标。估计你还要加另一个约束,比如让它跟button底部对齐/顶部对齐/中间对齐之类,它才会显示出来哈。另外它的尺寸,可以根据内容而定,也可以自己指定;如果尺寸是0的话也是显示不出来的。
                            
查看完整回答
反对 回复 2019-04-21
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

不用第三方吗?系统的用着不是很爽啊。有个masonry封装的第三方的约束
[_labelmas_makeConstraints:^(MASConstraintMaker*make){
make.left.equalTo(_messageBtn.mas_right).offest(10);
//你也可以在这里设置其他的约束,大小了,离右边的距离了。。。
}];
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信