【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记22 多MVC模式Demo中的AutoLayout自动布局-阿里云开发者社区

开发者社区> cwift-tal> 正文

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记22 多MVC模式Demo中的AutoLayout自动布局

简介: 上一话我们详细介绍了多MVC模式以及Segue过渡的时候,这一话用一个新的Demo来诠释。 我们新建一个Psychologist的工程。
+关注继续查看

上一话我们详细介绍了多MVC模式以及Segue过渡的时候,这一话用一个新的Demo来诠释。


我们新建一个Psychologist的工程。把ViewController的名字改为PsychologistViewController。那么这个控制器是做什么用的呢?系统问你一个问题,然后你做出回答,系统会根据你的回答判断你是否开心,这样就能用上我们之前的Hppiness的项目。

在视图中加入一个label,然后调整字体为36,文字居中,label两边上边都与蓝线对齐。


每一话都会渗透一些自动布局的内容。我们让这个label重置到它被推荐的位置。


我们会看到:


中间的蓝线代表label与下边界产生了关联,但是我们不希望这样做,因为你并不确认运行的设备的尺寸。通常我们不去关联下边界,而让下边界的距离做一个弹性的变量。

我们打开右侧的尺寸检测器,可以看到所有的约束:


我可以选中我不喜欢的约束然后delete它。删掉之后会出现黄线,因为我们没有足够的约束了,按照我们之前讲的,在试图大纲中update frame,你会看到黄线消失了。

有了问题,现在我们把答案拖出来,这是一个按钮。我把这个按钮拖到中间,然后点击重置位置到推荐位置(和上面操作一样),然后我们删除不需要的约束,这里我只保留竖直方向的居中,我们不需要上下的间距和固定宽高,因为我希望这个按钮的大小根据它里面的内容来自动调整。


这时我需要使用其他约束了,点击右下角按钮栏的第一个按钮


因为已经有了竖直方向的中心,所以只要添加一个水平方向的居中就行了。


你会看到现在我们的按钮在水平和竖直方向上都居中了。再次update frame,按钮的位置就调整好了。


然后复制按钮,加入不同的内容。

新按钮重置到推荐的位置,你会看到它有两个约束,一个水平居中,一个底部距离:



我们用同样的办法创建第三个按钮:


我们运行一下我们的程序:


你可以看到顶部的文字被截掉了,旋转一下:


看起来横屏模式下效果很好,但是竖屏就不行了,为什么会这样呢?因为我们设置了字体为36号,你可以在storyboard属性监测器的Autoshrink中看到,目前的设置为Fixed

 Font Size(固定字体大小):


但是这个字体不需要固定大小,我需要设置它的最小值,不希望它比12号要小,设置如下:


现在我们再来运行,你会看到字体会自动缩放,当屏幕变宽的时候字体会变大。


那么有没有办法可以让文字自动换行呢?一种方法是用textView替换label。另一种方法是设置label中的Line Breaks,当前的做法是删减尾部,最直接的直接设定lines的值。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
「镁客早报」科大讯飞回应裁员传闻;谷歌Waymo自动驾驶汽车部门在密歇根州建造工厂
马斯克或将建大型强子对撞机挖隧道;百度遭自媒体炮轰,花旗下调其目标股价并列入负面观察。
489 0
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
20 0
poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @ClassName: CreateExcel * @Description: TODO() * @author www.xiongge.club *
2019 0
广州首批自动驾驶路测牌照正式发放 文远知行、广汽、AutoX、Pony.ai均上榜
自动驾驶的赛道上,不仅有各大企业的群雄角逐,试点示范城市之间也在暗自较量。
1072 0
C++中消息自动派发之二 About IDL解析器
  前一篇blog中讲了如何在C++中实现消息的自动派发,而关键点在于如何实现通过IDL文件自动生成msg_dispatcher模板类。有几个网友提醒我idl解析器会比较难写,事实却是如此。我第一个版本的idl解析器本来只是想做demo只用。
711 0
再读《Parallel Programming with Python》并作笔记
并发编程,在哪个语言里都属于高端应用,一定得会了才好意思说懂了这门语言。 在工作中用得并不是很多,忘了一些内容,就慢慢看,慢慢补上。 今天一天看了近三分之一(我看外文越来越快了??:)), 实践一下多线程的threading模块。
1115 0
AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示
AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + LCD天气显示
2602 0
+关注
cwift-tal
https://weibo.com/277195544?refer_flag=1005055013_
153
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载