- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AutoLayout通过代码添加约束
Auto Layout:通过代码添加约束
这里为Button与View之间的约束(视图之间的约束与此类同,具体不同请参考Auto Layout 入门:可视格式语言和/kf/201403/282699.html)
效果如图:
?
按cmd+- 使界面横屏。
?
我们先创建第一个按钮,并把它放在界面的左上角。在viewController.m中创建如下实例变量
?
@implementationViewController?
{?
??UIButton?*firstButton;?
}
在viewDidLoad中创建这个按钮,并把它添加到view中
- (void)viewDidLoad?
{?
? [superviewDidLoad];
?
??firstButton?= [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
? [firstButton?setTitle:@FirstforState:UIControlStateNormal];?
? [firstButton?sizeToFit];?
??firstButton.translatesAutoresizingMaskIntoConstraints?=?NO;
?
? [self.view?addSubview:firstButton];
}
设置translatesAutoresizingMaskIntoConstraints属性为NO,用来禁止AutoresizingMask转换成AutoLayout,简单来说,Autoresizing和AutoLayout用的不是一套东西,但是默认情况下是相互转换的,这里我们要指定使用AutoLayout系统,所以要禁止自动转换。这个属性是为了向后兼容。我们将添加一个左边约束,于是这个按钮会在view中移动20个点。把下面的代码添加到viewDidLoad下面。
?
NSLayoutConstraint?*constraint?= [NSLayoutConstraint?constraintWithItem:firstButton?attribute:NSLayoutAttributeLeading?relatedBy:NSLayoutRelationEqualtoItem:self.view?attribute:NSLayoutAttributeLeading?multiplier:1.0f?constant:20.f];
?
[self.view?addConstraint:constraint];
Auto Layout用一个公式来计算界面之间的关系:
A = B * m + c
或者
viewA.attribute = viewB.attributs*multiplier + constant
在这个例子中公式如下:
?
firstButton.NSLayoutAttributeLeading = self.view.NSLayoutAtrributeLeading * 1.0f + 20f
按钮左边的位置等于父视图左边距减掉20.
把下面的约束添加到viewDidLoad里
constraint?=[NSLayoutConstraint?constraintWithItem:firstButton?attribute:NSLayoutAttributeTop?relatedBy:NSLayoutRelationEqualtoItem:self.view?attribute:NSLayoutAttributeTop?multiplier:1.0f?constant:30.f];
[self.view?addConstraint:constraint];
该约束将会使按钮距离父视图上面30个点。Build and Run。这个按钮距离左边20个点,上面30个点
?
按 cmd+- 使界面横屏。
?
在interface中创建一个新的实例变量
?
UIButton?*secondButton;
在viewDidLoad中添加下面的代码,在view中添加第二个按钮。
?
secondButton?= [UIButton?buttonWithType:UIButtonTypeRoundedRect];
[secondButton?setTitle:@SecondforState:UIControlStateNormal];?
[secondButton?sizeToFit];?
secondButton.translatesAutoresizingMaskIntoConstraints?=NO;
?
[self.view?addSubview:secondButton];
这个
您可能关注的文档
- 2-1三相电动机的点动连续运行控制.ppt
- 小学英语课本详解与测评四年级.doc
- 小学英语课标单词-全整合版必会.doc
- 2-DINMAINPCB测试方法.doc
- 2-2定位轴线的确定.ppt
- ASME标准讲解1(力与平衡强度理论).ppt
- 小学英语趣味绕口令.doc
- 小学英语辅导2012-2013年五年级英语上册寒假作业(共8套).doc
- 2-方奇灵老师-秦朝中央集权制度的形成(詹泽亮改).ppt
- 小学英语重点句型四年级一学期人教版.doc
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)