iOS笔记UI--使用storyboard加入约束
申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨
可视化的搭建UI效率是很高的。所以官方苹果也是很推荐的。那么我们来学一学怎样利用系统自带的故事版(storyboard)来搭建UI。可视化搭建UI除了能够使用storyboard也能够使用xib。事实上使用它们也是很easy的,仅仅须要在xcode的右下角写处控件的名字,然后拖拽到故事板上就可以。如图
拖拽完之后。
就是依据需求去设置控件的大小,以及屏幕的适配(iphone4~iPhone 6s plus)等。在这个设置大小的点,我们就要用到约束。曾经用代码也是要用到约束去约束每一个控件的大小的。所以约束的概念也不展开讲了。(假如你实在不想用约束的话。事实上也是能够实现屏幕的适配的。能够用比例的大小去设置,类似于h5)。如今主要说说怎样实现。怎么去操作,给控件加上约束。
我如今先拖拉一个UIView来设置一个距离顶部的约束
这样设置完之后就会出现例如以下的现象
出现红色说明还有欠缺的约束没有加完。
顶部那个线就是我们加入的约束。
假如我们先写距离顶部的距离是133。那么我们不论切换到哪个屏幕的大小都是133。
我们再往左边加入一个约束,然后设置它的宽高为100。即如图
约束完之后就能够了
这样约束完之后的那个UIView的大小和位置就是固定的了。以后不论改动成哪个屏幕都是一样的。
只是这样有个缺点。它的距离的位置和大小是绝对的而不是相对的。假如你用iphone4展示出这个界面,就认为偏的话,那么用iphone6s就会显得几乎相同或者刚刚好。用样例看看,如图
所以,我们应该得用相对位置和相对大小。假如我们想让它水平居中,那么我们把原来的左边约束给删除。加入一个水平居中的约束
这样就水平居中了。再执行看看
这样就水平居中了。既然是相对约束,当然不止只只能水平居中了。比方说我要偏左一点怎么办?偏右一点怎么办?改水平居中系数。如图
点击那个edit出现后改动那个Multiplier。那个就是系数值,比1小就是往左,比1大就是往右。我们来设置一下0.6和1.8的效果看看
这样看是不是非常明显?那么这样就能够依据实际需求设定我们须要的位置了。垂直居中也是这样设置。就是选中水平约束以下那个(vertically)
写完相对位置之后,我们应该要来想想怎么设置相对大小了。为了方便演示,先把原来那个删除了。又一次拉一个UIView。把它的大小和屏幕设置成等高等宽。
把equal widths 和equal heights打上勾就能够。add上去就能够了。
设置完之后就是这样
就是由于我们还没有加位置约束。我们给它左边和上边都是0.0。这样就能够了
OK,到这里就能够实现相对大小了。
同理的,我们想改动它不是满屏大小,也能够使用系数
改动成0.4试试
宽高同理,想学习的慢慢自己搞搞。
学到这里,我们就已经学会了加绝对值的约束以及加相对值的约束。接下来的各种组合就看项目的实际需求以及你们的各种发挥各种想象力了。加油!
上传图片竟然不小心没了, 还好在点击打开别的博客里面有备份。
懒得又一次再上传一次,就放个链接好了。
iOS笔记UI--使用storyboard加入约束的更多相关文章
- IOS开发UI基础storyboard相关概念的认识
本文主要介绍一些基本的概念 为后面的学习做个准备 需要了解的知识点有以下几个方面: storyboard文件的认识 IBAction 和IBOutlet UIViewController控制器的认识 ...
- iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...
- iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)
iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器 实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...
- iOS开发UI篇—模仿ipad版QQ空间登录界面
iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...
- 【转】iOS笔记-自定义控件(OC)
原文网址:http://www.jianshu.com/p/f23862eb7b8a 导读: iOS开发中,很多时候系统提供的控件并不能很好的满足我们的需求,因此,自定义控件便成为搭建UI界面中必不可 ...
- 荼菜的iOS笔记--UIView的几个Block动画
前言:我的第一篇文章荼菜的iOS笔记–Core Animation 核心动画算是比较详细讲了核心动画的用法,但是如你上篇看到的,有时我们只是想实现一些很小的动画,这时再用coreAnimation就会 ...
- [Android开发学iOS系列] iOS写UI的几种方式
[Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写 ...
- iOS之UI组件整理
作者:神兽gcc 授权本站转载. 最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现.其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起 ...
- iOS开发UI篇—CAlayer(创建图层)
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...
随机推荐
- BOE系统与BW系统间的单点登录(注:这里先简单写一下,改天有时间再进行详细的描述)
1,在BOE系统内进行配置,将BW系统内的用户信息导入BOE 2,在BOE系统内定义这些导入用户对BOE对象有哪些权限 3,用户使用BW系统的用户名密码登录BOE系统:BOE将登录凭证转发给BW系统让 ...
- 多媒体文件格式之AVI
[时间:2016-07] [状态:Open] AVI(Audio Video Interleaved的缩写)是一种RIFF(Resource Interchange File Format的缩写)文件 ...
- pypi配置国内开源镜像
### windows ------------------------------------------------- 在用户目录下新建 pip文件夹,新建pip.ini文件 [global] i ...
- Mybatis之工作原理
1.Mybatis的架构 1.1 Mybatis的框架分层 1.2 MyBatis的实现原理 mybatis底层还是采用原生jdbc来对数据库进行操作的,它支持定制化 SQL.存储过程以及高级映射的优 ...
- resource.h
resource.h就是.rc文件的头文件.rc文件里的常量全在resource.h定义 .rc文件和resource.h 都是给project add resource 的时候VS 自动生成的.一般 ...
- 分布式唯一id生成器的想法
0x01 起因 前端时间遇到一个问题,怎么快速生成唯一的id,后来采用了hashid的方法.最近在网上读到了美团关于分布式唯一id生成器的解决方案, 其中提到了三种生成法:(建议看一下这篇文章,写得很 ...
- iis下php 500错误
很不想用iis,然而客户不想增加机器,只好按客户的意思了.可是没想到发送短信以在本地 机器上是好的,在iis下直接500. 一开始以为是防火墙问题,后来检查了一下没有,再后来换了一个短信接口, ...
- java基础篇---网络编程(TCP程序设计)
TCP程序设计 在Java中使用Socket(即套接字)完成TCP程序的开发,使用此类可以方便的建立可靠地,双向的,持续的,点对点的通讯连接. 在Socket的程序开发中,服务器端使用serverSo ...
- Android VLC播放器二次开发2——CPU类型检查+界面初始化
上一篇讲了VLC整个程序的模块划分和界面主要使用的技术,今天分析一下VLC程序初始化过程,主要是初始化界面.加载解码库的操作.今天主要分析一下org.videolan.vlc.gui.MainActi ...
- 2017 码云最火爆开源项目 TOP 50,你都用过哪些
本文转自:https://share.html5.qq.com/fx/u?r=JdjvzwC 2017 年度码云热门项目排行榜 TOP 50 出炉啦!我们根据所有开源项目在码云的用户关注度.活跃度.访 ...