关于自动布局的一些知识点

最近在做项目的时候,用自动布局来添加约束的时候出现了很多小问题,非常抓狂,通过这几天的练习和总结。填补了以前的一些知识盲点,对于自动布局的认识有了一点新的认识,但是还有很多地方需要去学习。

1.对于label,button,已经添加图片的image,xcode会自动为其生成一个默认文字内容和图片大小的宽和高。如果是一个空的view或者空的imageview,在设置x轴的约束时,需要在左右两边添加constrain约束来确定它的位置,但是如果是label只需要在一边添加约束就可以确定它的位置。

2.为了适应各种iphone屏幕的大小,我们需要在view上添加相对位置来保证控件的不变形。而最好的办法就是通过aspect比例缩放来确定它的相对位置。

3.在对一个控件添加了相对位置后,比如load和traling方向上添加后,在屏幕尺寸发生变化时,会自动拉伸控件的宽度来适配不同屏幕的大小。而constrain约束的宽度会随着屏幕的大小,等比例的变化,从而使得屏幕中的控件位置并未畸变。

4.我在做项目的过程中,让我迷惑的问题是,所有的控件都需要进行等比例缩放来保证在不同屏幕的大小相对变化,而固定宽高会让控件变形,因此不再使用width,heigth,但是,在对多个已经添加文字的label添加两边的约束,但是这样添加约束,反而使得控件的约束出现了过多的冲突,弄的一团糟,其实,添加文字的label自身就有一定的宽高约束,过多的使用等比例约束反而让其出现变形,解决的办法就是设置好文字的大小,从而使得在屏幕上单边约束后在相应位置出现视图就可以了。

时间: 2024-12-09 08:10:36

关于自动布局的一些知识点的相关文章

简便的自动布局,对UIStackView的个人理解!

序言: 更新了很久的Linux,我怕朋友们都视觉疲劳了,今天就更新在学ios开发时候,对一些知识点的理解.希望各位会喜欢! 正文: UIStackView 类提供了一个高效的接口用于平铺一行或一列的视图组合,stackView提供了高效的单行单列自动布局的手段,一般情况下,我们不需要对stackView.subviews做任何约束,只需要通过对stackView的axis, distribution, alignment, spacing属性进行修改: axis(轴向) 属性决定了 stack

【转】开始iOS 7中自动布局教程(一)

原文网址:http://www.cocoachina.com/industry/20131203/7462.html 原文:Beginning Auto Layout Tutorial in iOS 7: Part 1 感谢翻译小组成员@answer-huang(博客)热心翻译.如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315). ======================================================

电信网络拓扑图自动布局之总线

在前面<电信网络拓扑图自动布局>一文中,我们大体介绍了 HT for Web 电信网络拓扑图自动布局的相关知识,但是都没有深入地描述各种自动布局的用法,我们今天在这边就重点介绍总线的具体实现方案. 在 HT for Web 的连线手册中,有说明可以自定义连线类型,通过 ht.Default.setEdgeType(type, func, mutual) 函数定义,我们今天要描述的总线也是通过这样的方法来实现的. 我们来简单地描述下这个方法,虽然在文档(http://www.hightopo.c

开始iOS 7中自动布局教程(一)

你是否曾经想让你的app在横竖屏方向上看起来都表现良好而受挫?是否在做支持iPhone和iPad屏幕布局界面时几近大小便失禁?今天我将给你带来好消息! 一直为大小相同的屏幕设计一个用户界面并不难,但如果屏幕的尺寸改变的话,UI元素的位置和大小也需要相应的做出改变. 到目前为止,如果你的设计相当的复杂,那么你必须编写大量的代码来适应这样的布局.你应该很高兴,现在这样的情况再也不存在了--iOS6为iPhone和iPad带来了一个极好的新特性:自动布局.Xcode 5和 iOS7中对自动布局做出了改

iOS开发之自定义表情键盘(组件封装与自动布局)

下面的东西是编写自定义的表情键盘,话不多说,开门见山吧!下面主要用到的知识有MVC, iOS开发中的自动布局,自定义组件的封装与使用,Block回调,CoreData的使用.有的小伙伴可能会问写一个自定义表情键盘肿么这么麻烦?下面将会介绍我们如何用上面提到的东西来定义我们的表情键盘的.下面的内容会比较多,这篇博文还是比较有料的. 还是那句话写技术博客是少不了代码的,下面会结合代码来回顾一下iOS的知识,本篇博文中用到的知识点在前面的博客中都能找到相应的内容,本篇算是一个小小的功能整合.先来张图看

iOS开发零碎知识点

记录一些常用和不常用的iOS知识点,防止遗忘丢失.(来源为收集自己项目中用到的或者整理看到博客中的知识点),如有错误,欢迎大家批评指正:如有好的知识点,也欢迎大家联系我,添加上去.谢谢! 一.调用代码使APP进入后台,达到点击Home键的效果.(私有API) [[UIApplication sharedApplication] performSelector:@selector(suspend)]; suspend的英文意思有:暂停; 悬; 挂; 延缓; 二.带有中文的URL处理. 大概举个例子

H5移动端知识点总结

移动开发基本知识点 一. 使用rem作为单位html { font-size: 100px; }@media(min-width: 320px) { html { font-size: 100px; } }@media(min-width: 360px) { html { font-size: 112.5px; } }@media(min-width: 400px) { html { font-size: 125px; } }@media(min-width: 640px) { html { f

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati

Javascript易错知识点

? JS易错知识点总结: == 和 === 的区别: ==:判断两个变量的值是否相等. ===:判断两个变量的类型和值是否都相等,两个条件同时满足时,表达式为True. switch中break的作用: 如果一个case后面的语句,没有写break,那么程序会向下执行,而不会退出: 例如:当满足条件的case 2下面没有break时,case 3也会执行 1 var num = 2; 2 switch(num){ 3 case 1: 4 alert('case 1'); 5 break; 6 c