文档章节

Storyboard使用技巧:使用比例方式布局

Daniel_s
 Daniel_s
发布于 2016/05/12 16:18
字数 600
阅读 126
收藏 0
点赞 2
评论 0

Storyboard对于多屏幕适配来说再合适不过了!但是有一些技巧可能很容易被忽略,今天要介绍的使用比例来控制布局可能就是其中之一。

storyboard 适配精髓都在这里了  一般的布局都能搞定了 

在实际项目开发过程中,有些布局是按照比例来确定大小的,这个时候用下面的方法可以减少你的代码量,完全可以在Storyboard中完成!

下面介绍subview相对于superview的比例。完成从一个控制器里面添加一个Button,并使Button.width = Button.superview.width/4;

Step 1 添加一个UIButton,并使用布局使它居于view中心

  • Storyboard中添加一个UIViewController,然后往里面添加一个UIButton
  • 选中Button,在右下角的快捷操作中如图所示进行设置,点击Add 2 Constraints
  • 此时,你可能还需要再次选中这个Button,再使用快捷键Command+option+=修复frame,这时Button的frame和layout的约束才会对应起来。如果不修复frame也不会影响实际运行的效果,但是Xcode会提示警告!

Step 2

  • 在View的树形图中,先选中View再选中Button
  • 如图所示添加约束,勾选Equal Widths,点击Add 2 Constraints

Step 3

  • 选中Button如图所示编辑约束的参数,Multiplier设置为1:4

Done

  • Command+option+=修复frame

补充

  • 相同层级和不同层级的view之间都可以用这种比例方式确定大小,但是必须有条件先确定其中一个view的大小。这里说的条件,指的是约束,或者UIViewController.view这种由父级容器确定了大小的条件。
  • 一般情况下,宽度和高度需要分别设置比例,看需求而定。
  • 宽度和高度之间也可以设置比例,设置方法和上面基本相同,不同的是,只需要选择一个view,添加约束的时候只勾选Aspect Ratio,设置比例的方法同上。
  • Aspect Ratio 这个选择可以让控件 按宽高比列适配 或自定义比例
  • 如果想对动态适适配约束(比如top的 宽高)  可以对约束 添加一个属性  然后在代码里需要的时候修改  比如做键盘弹出和隐藏的时候

本文转载自:

共有 人打赏支持
Daniel_s
粉丝 12
博文 156
码字总数 4133
作品 0
十堰
程序员
为iPhone 6设计自适应布局

Apple从iOS 6加入了Auto Layout后开始就比较委婉的开始鼓励、建议开发者使用自适应布局,但是到目前为止,我感觉大多数开发者一直在回避这个问题,不管是不是由于历史原因造成的,至少他们在...

阳光飞鸟
2015/03/13
0
0
约束布局:开篇

随着Android Studio2.3正式版本的发布,约束布局(ConstraintLayout)也进入了1.0.1正式版,是时候进入安卓开发布局的新阶段了。 约束布局的概念第一次接触是在iOS开发的学习当中,苹果官方将约...

欧阳锋
2017/03/06
0
0
iOS9新特性——堆叠视图UIStackView

iOS9新特性——堆叠视图UIStackView 一、引言 随着autolayout的推广开来,更多的app开始使用自动布局的方式来构建自己的UI系统,autolayout配合storyBoard和一些第三方的框架,对于创建约束来...

珲少
2015/11/17
0
0
WPF/Silverlight深度解决方案:(十八)GPU硬件加速下Silverlight超性能动画实现(下)

通过上一节的测评,相信大家已经对Silverlight中利用GPU硬件加速来提升性能有了深刻印象。Silverlight游戏开发中,我们需要综合运用多种形式的动画及相关图形处理技巧,此时如果能充分合理的...

晨曦之光
2012/03/09
0
0
从此爱上iOS Autolayout

这篇不是autolayout教程,只是autolayout动员文章和经验之谈,在本文第五节友情链接和推荐中,我将附上足够大家熟练使用autolayout的教程。这篇文章两个月前就想写下来,但因为一直工作较多,...

hejunbinlan
2016/08/01
8
0
iOS开发通过代码方式使用 NSLayoutConstraint + Masonry

随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要。(包括:iPhone4/4s,iPhone5/5s,iPhone6/6s,iPhone 6p/6ps)。 在 iPhone6出现以前,我们接触...

Daniel_s
2016/07/13
7
0
XIB、Storyboard操作小技巧

本文收集了其他优秀博主,论坛上的相关技巧,及自己总结出的一些tips,小白级tip,大神们请轻喷,或给出建议分享,谢谢! SB push Tab时隐藏Tab 相信有很多人和我一样,开始使用 tabBar 时苦...

芳仔小脚丫
2014/09/17
0
4
Xcode6快捷键、小技巧与xib圆角设置

欢迎关注我的微博:http://weibo.com/u/1217310237 以下都是使用Xcode6的一些记录,比较杂,不定期持续更新…… 快捷键: 1、StoryBoard技巧 当你想直接在view中选择自己想要的元素时,但是又...

yoyoso
2015/03/17
0
3
在Storyboard中对UIScrollView使用autolayout自动布局应该注意的地方

尝试在Storyboard中对UIScrollView使用autolayout自动布局,遇到了种种麻烦,记录一下 1、UIScrollView在StoryBoard中的布局 在StoryBoard中使用UIScrollView一定要用下图中的这种布局,如果...

yoyoso
2015/03/23
0
0
给 iOS 开发者的 Android 开发建议

本人从事iOS应用开发已经5年有余,直到现在还总是刻意回避Andriod应用的开发。但是不管你信不信,安卓开发还是很有意思的,从iOS转向Android应用开发的跨度并没有你想象的那么大。 现在我把在...

oschina
2014/06/02
4.1K
15

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用 Python 实现打飞机,让子弹飞吧!

所用技术和软件 python 2.7 pygame 1.9.3 pyCharm 准备工作 安装好 pygame 在第一次使用 pygame 的时候,pyCharm 会自动 install pygame。 下载好使用的素材。 技术实现 初始化 pygame 首先要...

猫咪编程
4分钟前
0
0
MySQL的行锁和表锁

简单总结一下行锁和表锁。 行锁 每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 表锁 每次操作锁住整张表。开销小,加锁快;不会出...

to_ln
7分钟前
0
0
Java IO类库之字节数组输入流ByteArrayInputStream

一、ByteArrayInputStream字节数组输入流介绍 ByteArrayInputStream是字节数组输入流,继承自InputStream。它的内部包含一个缓冲区,是一个字节数组,缓冲数组用于保存从流中读取的字节数据,...

老韭菜
8分钟前
0
0
iOS安全应该做哪些事情

1. 尽量使用HTTPS协议。 2. 密码提交的时候,密码使用SHA256加密后传输,MD5等经过哈希碰撞已经可以推算出原文。 3. 密码提交的时候,可以加盐。 4. 密码保存在本地的时候,尽量使用钥匙串保...

HOrange
15分钟前
0
0
react native 注意事项

1. 环境参考官网 android studio 必装 java jdk安装 1.8版本(环境建议自己一步一步配置,切记不要 apt ) 2.有改变编译内容发现 会白屏,然后APP消失,请卸载原来的测试 appinfo (连续两次...

304158
21分钟前
0
0
FOMO游戏代码解析

源代码在此处

怎当她临去时秋波那一转
26分钟前
1
0
EOS智能合约与DApp开发入门

EOS的是Block.One主导研发的一个区块链底层公链系统,它专门为支撑商业去中心化 应用(Decentralized Application)而设计,其代码开源。 比特币被称为区块链1.0,因为它开辟了数字加密货币的...

笔阁
38分钟前
1
0
编译cjson到dll

https://blog.csdn.net/mengzhisuoliu/article/details/52203724 编译完成后 是纯lua实现的json decode 的10倍以上...

梦想游戏人
48分钟前
0
0
JS基础- Date 对象

Date 对象 Date 对象用于处理日期和时间。 创建 Date 对象的语法: var myDate=new Date() 注释:Date 对象会自动把当前日期和时间保存为其初始值。 Date 对象属性 属性 描述 constructor 返...

ZHAO_JH
50分钟前
0
0
Python数据分析numpy(1)

Python开源的科学计算基础库 1.表示N维数组对象ndarray 2.线性代数、傅里叶变换、随机数生成 3.广播函数,整合c++、c 一.数据的维度 1.数据 2.数据维度 3.一维数据 (1)特点 (2)Python中的...

十年磨一剑3344
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部