iOS开发之autoLayout constraint
前言
ios设备的尺寸越来越多,针对一款app可能要适配到多种设备。多种尺寸。所以。我们期望我们的app可以autoLayout
。本文主要介绍在Xcode中使用constraint
。未来会不定期对此文进行更新。
约定
本文中view指代从Objuect Library中拖拽出来的各种view
基础
一个view在界面显示,至少有三种决定条件
- 一、自身大小:如width、height
- 二、相对于父容器的位置:如固定起始坐标位置或相对位置
- 三、相对于兄弟view的位置:如顶部对齐、左右距离、堆叠层次
思路
在storyboard
中,拖拽出来的view都有默认的样式,在拖动的过程中会有蓝色的辅助线,帮助我们布局。可是位置大小等都是固定的,我们须要给每一个view设置constraint
,告诉它在不同的情况下应该怎样表现。

编译执行Label
并没有垂直水平居中

布局的过程,就是确定view的水平位置、垂直位置以及相对位置
需求
一种常见的情况:一个搜索框,一个搜索button
搜索框:长度要随着界面变化进行伸缩。与确定button间距20,距离左边0。顶部10,高40
确定button:顶部10,右边0,与搜索框间距20,宽50。高40
先来看下终于效果
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" class="imagebubble-image" alt="" style="">

实现步骤
- 1、拖拽一个
text Field
,一个Button
到storyboard - 2、注意storyboard底部的button
constraintbutton三个button各自是
Align
: 主要用来进行兄弟view对齐
Pin
:自身大小、相对容器位置
Resolve auto layout issues
:应用constraint
后更新storyboard 3、选中
Button
,点击Pinbutton,上边距10,分别设置左边距20,右边距0,高度40,宽度50(button的宽度基本是固定的)
宽度和高度都是描写叙述自身大小,条件一
上边距和右边距都是相对父容器,条件二
左边距是相对于兄弟view的位置,条件三imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" class="imagebubble-image" alt="" style="">
Button constraint点击
Add 5 Constraints
结果就变成下边的样子了结果4、这个时候,我们点击
Resolve auto layout issues
,并选择Selected
下的
ViewsUpdate Frame
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" class="imagebubble-image" alt="" style="">
Update Frame
5、如今同一时候选中
Button
和text
,点击
FieldAlign
button。勾选Top
,从icon上我们就能够看出来,是顶部对齐的意思
Edges
顶部是相对于兄弟view的位置。条件三。
同一时候。隐含的text Field
相对父容器顶部的位置和Button
一样,条件二

Top Edges
点击 Add 1 Constraints

Add 1 Constraints
点击Resolve auto layout issues
,选择Selected
下的
ViewsUpdate Frame

Update Frame
- 6、如今选中
text Field
,点击Pin
button。设置左边距0和高度40。点击Add
2 Constraints
高度40。条件一
左边距,条件二
隐含的,宽度是从父容器到搜索button的左边20的位置,条件一

text Field
左边距点击Resolve auto layout issues
,选择Selected
下的
ViewsUpdate Frame

Update Frame
结果改动Button
的文字为搜索就算完毕啦~
iOS开发之autoLayout constraint的更多相关文章
- iOS开发之Autolayout
1.概述 在以前的iOS程序中,是如何设置布局UI界面的? (1)经常编写大量的坐标计算代码 (2)为了保证在3.5 inch和4.0 inch屏幕上都能有完美的UI界面效果,有时还需要分别为2种屏幕 ...
- iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析
本篇博客的内容也不算太复杂,算是AutoLayout的一些高级的用法.本篇博客我们主要通过一些示例来看一下AutoLayout中的Content Hugging Priority以及Content C ...
- 李洪强iOS开发之iOS好文章收集
李洪强iOS开发之iOS好文章收集 该文收集朋友们转发或自己的写的技术文章,如果你也有相关的好文章,欢迎留言,当好文章多的时候,我会对这些好文章进行分门别类 文章 简述 日期 直播服务配置 使用 ng ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- iOS开发之UIImage等比缩放
iOS开发之UIImage等比缩放 评论功能真不错 评论开通后,果然有很多人吐槽.谢谢大家的支持和关爱,如果有做的不到的地方,还请海涵.毕竟我一个人的力量是有限的,我会尽自己最大的努力大家准备一些干货 ...
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...
随机推荐
- css3 animate写的超炫3D转换
上一篇中介绍了animate的基本的属性,这一篇讲的则是关于animate以及transforms的使用 <!DOCTYPE html><html lang="en&quo ...
- F - Dima and Lisa(哥德巴赫猜想)
Problem description Dima loves representing an odd number as the sum of multiple primes, and Lisa lo ...
- 浅析CLR的异常处理模型
文章目录: 异常概述 CLR中的异常处理机制 CLR中异常的核心类System.Exception类 异常处理的设计规范和最佳实践 异常处理的性能问题 其他拓展 1.异常概述 异常我们通常指的是行动成 ...
- 通过Hibernate实现添加功能
package com.demo.dao; import org.hibernate.Session; import org.hibernate.SessionFactory; import org. ...
- Css 分类 属性 选择器
Css 层叠样式表 美化页面的小工具 分类: 内联 (行内)在标签内部以属性的形式呈现,属性名style 内嵌 head标签内以标签形式呈现,标签名style 外部 head标签内 加link标签 引 ...
- [OpenWrt]安装mjpg-streamer
安装mjpg-streamer 远程监控基本上是wifi小车的一个必备功能了.摄像头我用的是奥尼百脑通 D881,这个要100左右. 确认安装了以下软件: kmod-usb2 kmod-video-u ...
- R 连接DB2数据库,并制作词图
#写在前面的话:此教程主要是用R连接了DB2数据库,并进行文本分析,制作了词图 #教程为markdown编写 ---title: "网站留言分析"output: html_docu ...
- 从Spark1.6到Spark2.1,Logging该何去何从
大家都知道spark 1.6.0版本比较稳定,也比较流行. 我们项目组也是,最初用的就是这个版本. 这段时间,项目组引入spark 2.1.0版本,我想尝尝鲜. Pom中刚刚换了dependency马 ...
- VS2012 编译 boost1.53/ boost1.49
原文链接:http://blog.csdn.net/ly131420/article/details/8904122 一.下载Boost库 boost_1_53_0.zip (http://www ...
- 定时器篇---java.util.TimerTask和quartz
最近项目中出现了定时执行任务的东西,研究了一下,觉得挺不错的,以后还用得到,就总结了下. 这里只介绍两种java.util.Timer 和 quartz java.util.Timer java自带的 ...