申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨

可视化的搭建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加入约束的更多相关文章

  1. IOS开发UI基础storyboard相关概念的认识

    本文主要介绍一些基本的概念 为后面的学习做个准备 需要了解的知识点有以下几个方面: storyboard文件的认识 IBAction 和IBOutlet UIViewController控制器的认识 ...

  2. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...

  3. iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

    iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...

  4. iOS开发UI篇—模仿ipad版QQ空间登录界面

    iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...

  5. 【转】iOS笔记-自定义控件(OC)

    原文网址:http://www.jianshu.com/p/f23862eb7b8a 导读: iOS开发中,很多时候系统提供的控件并不能很好的满足我们的需求,因此,自定义控件便成为搭建UI界面中必不可 ...

  6. 荼菜的iOS笔记--UIView的几个Block动画

    前言:我的第一篇文章荼菜的iOS笔记–Core Animation 核心动画算是比较详细讲了核心动画的用法,但是如你上篇看到的,有时我们只是想实现一些很小的动画,这时再用coreAnimation就会 ...

  7. [Android开发学iOS系列] iOS写UI的几种方式

    [Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写 ...

  8. iOS之UI组件整理

    作者:神兽gcc 授权本站转载. 最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现.其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起 ...

  9. iOS开发UI篇—CAlayer(创建图层)

    iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...

随机推荐

  1. ny106 背包问题

    背包问题                                                时间限制:3000 ms  |  内存限制:65535 KB                   ...

  2. 【DIOCP3-说明书】DIOCP3的输出日志

    DIOCP3除了有详细的监控面板之外,还有详细的输出日志,当然需要打开日志编译开关! 在工程选项加入DEBUG编译指令,这样在运行中就可以看到DIOCP3的运行详细日志 日志输出在EXE相同目录的LO ...

  3. Lua 自己实现排序sort比较方法,抛出错误invalid order function for sorting

    明天新功能就要上了,结果刚刚突然QA说项目抛出了错误.握草,吓得立马出了一身汗. 查了一下错误,发现可能是自己写的不稳定排序造成的.自己感觉应该就是.把排序方法写成稳定的之后,代码分离编译进手机,跑了 ...

  4. 多媒体文件格式之AVI

    [时间:2016-07] [状态:Open] AVI(Audio Video Interleaved的缩写)是一种RIFF(Resource Interchange File Format的缩写)文件 ...

  5. vs2015配置OpenGL开发环境

    先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...

  6. Leetcode: Remove Duplicates from Sorted List II 解题报告

    Remove Duplicates from Sorted List II Given a sorted linked list, delete all nodes that have duplica ...

  7. 【Linux】利用Xvfb关闭chrome的图形化输出

    利用Xvfb关闭chrome的图形化输出 #!/bin/bash . /home/fzuir/.profile # JAVA export JAVA_HOME=/usr/local/jdk1.7.0_ ...

  8. Java后端测试概述

    [本文出自天外归云的博客园] 多种单测技术 1. 要学会Spring MVC/Boot测试中自带的mock方法. 2. 学会junit中的方法,对于注解的使用等. 3. 学会使用结合第三方Mockit ...

  9. spring websocket + stomp 实现广播通信和一对一通信<转>

    spring对于基于stomp协议的websocket通信,其官网上面有一个guide,但是根据guide你只能写出来广播方式的通信,不能实现一对一的通信,这篇文章在这里把广播和一对一一起整理一下给大 ...

  10. stm32 r8025

    uint8_t RX8025_BCD2DEC(uint8_t val) {     uint8_t i;       i = val&0x0f;           //按位与,i得到低四位数 ...