【AutoLayout案例3 Objective-C语言】

news2024/9/24 23:31:08

一、咱们接下来,再把这个案例实现一下

通知

1.要求,

1)在控制器的顶部,有两个UIView,一个是蓝色View,一个是红色View

2)这两个UIView的高度,永远是相等的,蓝色和红色的高度是相等的,都是50

3)红色View和蓝色View,是右对齐的

4)蓝色View,距离父控件的左边、上边、右边,都是30

5)蓝色View,红色View,中间间距也是固定的,30

6)红色View的左边,也就是红色View,是蓝色View的一半儿

红色View的宽度,是蓝色View的一半儿,

这个怎么实现呢,你可以设置它俩宽度相等,再把这个红色View的宽度,改成蓝色View的一半儿,也可以设置什么呢,设置红色View的左边,与这个控制器的中点,中线,对齐

这是不是中线,是在这里

通知

如果,这个红色View的左边,和我们这个蓝色View的左边,对齐,这样的话,是不是它俩宽度相同的了

但是,我如果设置,红色View的左边,和我们当前这个控制器的中心点对齐,那么这个时候,红色View的宽度,是不是刚好是蓝色View的一半儿

通知

1)一个是:设置红色View与蓝色View等宽,再修改“宽度”是蓝色View的一半儿

2)在一个是:先设置红色View水平居中对齐,再设置红色View,距离我们的父容器,我们这个View的中线,让这个中线的距离,等于这个红色View左边的距离

两种思路,来,给大家写一下

二、第一种思路,设置红色View与蓝色View等宽,再修改“宽度”是蓝色View的一半儿

1.我就在这一个项目里写,再拽一个控制器过来

通知

再拽这么一个控制器

通知

好,把它拽过来以后,是不是要

通知

把上面这个箭头儿,给它拿过来

通知

箭头儿移下来,是不是就直接执行这个了

通知

然后,接下来,我们这里有两个View,直接拽两个View

通知

一个蓝色View、一个红色View

我们可以先拽一个,一个一个来

通知

拽一个蓝色View过来

通知

背景色,设置成蓝色

通知

蓝色

通知

然后我们来设置一下约束

通知

OK,它这个宽度是多少啊,没有宽度吧

它距离左、右、上、距离都是30

当你设置它距离左边距离,和距离右边距离以后,这个时候,它的宽度、和X的宽度,是不是就定了

然后,它的高度,是不是始终是50

高度也定了

然后,再给它一个距离上边的距离,是30,这样的话,它的宽和高、X和Y,是不是都给定了吧

都决定了,所以说,我们先设一下蓝色View

蓝色View,我们选中这个蓝色View

通知

写个字儿吧,这是蓝色

通知

好,选中蓝色View

1)然后我们设置它,距离

通知

距离,哪里,先把这个勾去掉

距离上、左、右

通知

看一下这个下拉菜单

通知

距离,都是30

看一下上边这个下来菜单

通知

看一下右边这个下拉菜单

通知

距离,都是30

2)然后,它的高度,是多少

通知

是不是50

高度是50吧

好,点增加,增加完毕以后

通知

没有红色箭头儿了吧,点一下这个黄色箭头儿,它完全可以建议蓝色View的位置和大小了吧

通知

更新一下

通知

更新一下,蓝色View,是不是显示在这里

通知

2.然后,接下来,再来一个红色View

把它拽过来,按住option键,拖一下

通知

这时候,把它的、把它这个控件上的所有约束,都删掉

通知

然后呢,再设置它的背景颜色是红色

通知

然后

通知

接下来,看一下,有什么约束

1)第一,要求,我们这个红色View,距离蓝色View,的这个间距,是不是也是30,啊

OK,那么,我就选中这个红色View,找到它的设置间距,设置上边的距离

通知

距离上边,谁啊

通知

距离蓝色View,是多少

是30

通知

然后,点一下,增加

通知

好,它距离蓝色View,就是30了

通知

2)然后,再设置这个红色View的右边,是不是和蓝色View的右边,对齐

选中红色View

通知

按住command 键,再选中蓝色View

通知

再选中我们的蓝色

然后,选中我们的对齐方式

是什么对齐来着,左对齐、还是右对齐

通知

右对齐,Trailing Edges:右对齐,把它勾上

通知

点击增加

通知

好,这样的话

通知

红色View,右对齐,意味着它的,它和这个右对齐,是不是对齐了

3)然后呢,你设置它的高,它的高,是不是得和这个蓝色View的高度一样啊

所以说,还得再加一个

选中红色View

通知

再选中蓝色View

通知

让它俩的高度,相同

Equal Heights

通知

然后,它俩的高度,是不是相同了

点击增加

通知

高度相同以后,这个红色View,距离蓝色View这个间距,是30,所以它的Y值,是不是确定了

然后呢,这个红色View,和这个蓝色View,是右对齐的,这个时候,只是它右对齐确定了吧,那么现在它的X和宽,是不是还没确定

我只要给它,让这个红色View的宽度,和蓝色View的宽度一确定,

这个时候,它的宽度,和X,是不是都确定了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/900250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双指针算法实例1(移动零)

常⻅的双指针有两种形式: 1 对撞指针(左右指针): a 对撞指针从两端向中间移动。⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼 近 b 终止条件一般是两指针相遇or错过(也可能在循…

VMWare Workstation 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式

文章目录 网络模式配网要求CentOSDHCP虚拟网络桥接模式默认配置测试手动配置测试 网络地址转发模式 (NAT) 网络模式 桥接模式: 主机与虚拟机对等, 虚拟机注册到主机所在的局域网, 会占用该网络的IP该局域网内的所有机器, 包括主机和其他机器和所有虚拟机, 均可互相访问 网络地…

ElasticSearch索引库、文档、RestClient操作

文章目录 一、索引库1、mapping属性2、索引库的crud 二、文档的crud三、RestClient 一、索引库 es中的索引是指相同类型的文档集合,即mysql中表的概念 映射:索引中文档字段的约束,比如名称、类型 1、mapping属性 mapping映射是对索引库中文…

ORA-600 ksuloget2 恢复----惜分飞

客户在win 32位的操作系统上调至sga超过2G,数据库运行过程中报ORA-600 ksuloget2错误 Thread 1 cannot allocate new log, sequence 43586 Checkpoint not complete Current log# 1 seq# 43585 mem# 0: D:\ORACLE\ORADATA\ORCL\REDO01.LOG Fri Aug 04 14:57:02 2023 Errors i…

正则表达式:贪婪与非贪婪模式

正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中,我们可以用 {m,n} 来表示 (*)()(?) 这 3 种元字符: 贪婪模式,简单说就是尽可能进行…

激活函数总结(十三):Tanh系列激活函数补充(LeCun Tanh、TanhExp)

激活函数总结(十三):Tanh系列激活函数补充 1 引言2 激活函数2.1 LeCun Tanh激活函数2.2 TanhExp激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SELU、GELU、…

pytorch 42 C#使用onnxruntime部署内置nms的yolov8模型

在进行目标检测部署时,通常需要自行编码实现对模型预测结果的解码及与预测结果的nms操作。所幸现在的各种部署框架对算子的支持更为灵活,可以在模型内实现预测结果的解码,但仍然需要自行编码实现对预测结果的nms操作。其实在onnx opset===11版本以后,其已支持将nms操作嵌入…

2.基于SpringBoot3集成SpringDoc Swagger3

1. 引入依赖 我们在build.gradle中引入依赖 implementation org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0 implementation org.springdoc:springdoc-openapi-starter-webmvc-api:2.1.02. 新增SpringDocConfig.java文件 Configuration public class SpringDocCo…

ElasticSearch 数据聚合、自动补全(自定义分词器)、数据同步

文章目录 数据聚合一、聚合的种类二、DSL实现聚合1、Bucket(桶)聚合2、Metrics(度量)聚合 三、RestAPI实现聚合 自动补全一、拼音分词器二、自定义分词器三、自动补全查询四、实现搜索款自动补全(例酒店信息&#xff0…

【图论】最短路的传送问题

一.分层图问题(单源传送) (1)题目 P4568 [JLOI2011] 飞行路线 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) (2)思路 可知背景就是求最短路问题,但难点是可以使一条路距离缩短至0&#xf…

excel逻辑函数篇2

1、IF(logical_test,[value_if_true],[value_if_false]):判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值 if(条件,条件成立返回的值,条件不成立返回的值) 2、IFS(logical_test1,value_if_true1,…):检查是否…

虚拟机问题

虚拟机无法识别USB设备 经排查为VMware USB Arbitration Service 没有启动,但是VMware USB Arbitration Service依赖于VMware Workstation Server启动 VMware USB Arbitration Service(VMUSBArbService)是由 VMware 虚拟化软件提供的一个服务,用于协调和管理主机系统上的…

每日一题——接雨水(单调栈)

接雨水——单调栈 题目链接 单调递增的栈还是单调递减的栈 我们常说的**”积水成洼“**,指的就是说:当两边地势高于中间的地势时,中间的区域就成了洼地,也就可以积水了。 这一题就是如此,我们需要通过一个栈来记录数…

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题 文章目录 UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题前言假设及验证1. 过多的粒子发射器影响仿真系统2. 粒子数目太多,降低粒子发射频率,同时增大粒子显示范围3. 把信息输出到屏…

揭秘程序员的鄙视链,你在哪一层?看完我想哭

虽然不同的编程语言都有其优缺点,而且程序员之间的技能和能力更加重要,但是有些程序员可能会因为使用不同的编程语言而产生鄙视链。 以下是一些可能存在的不同编程语言程序员之间的鄙视链: 低级语言程序员鄙视高级语言程序员:使用…

Java教程:如何使用切面环绕方法对所有接口进行添加出入参日志保存功能

背景: ----在很多时候我们做开发时,往往只是提供一个对外接口来进行前后端调试,或第三方系统联调,并使用log进行日志打印,每当出现问题进行排查时,只需要查看服务器日志就可以定位到问题,从而解…

Three.js程序化3D城市建模【OpenStreetMap】

对于我在 Howest 的研究项目,我决定构建一个 3D 版本的 Lucas Bebber 的“交互式讲故事的动画地图路径”项目。 我将使用 OSM 中的矢量轮廓来挤出建筑物的形状并将它们添加到 3js 场景中,随后我将对其进行动画处理 推荐:用 NSDT编辑器 快速搭…

在抽象类中使用@Autowired注入其他bean

概述 今天写代码时,使用模板设计模式,需要在抽象类中使用Autowired注入指定的Bean,然后调用指定方法。 问题 发现Autowired注解有红色下划线 解决 其实没有什么关系,只要实现类继承这个抽象方法,然后加入IOC容器&am…

深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)

深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)。 一、简介 单点登录(Single Sign On),简称为 SSO。 它的解释是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 ❝ 所谓一次登录,处处登录。同样一处退出,处处退出。 ❞ 二…

内核配置知识

Linux内核配置系统的组成 Linux内核源码很多,有上千条配置选项,配置相当复杂。 为了更好选择自己想要的功能配置,linux内核源码组织了一个配置系统; 配置系统包括三部分: Makefile:负责整体的配置编译 …