当前位置: 首页 > news >正文

【AutoLayout案例03-设置底部按钮之间相同间距 Objective-C语言】

一、好,咱们继续啊

通知

1.咱们继续把autoLayout介绍一下

通知

咱们的自动布局

通知

给大家介绍一下

通知

那么,自动布局呢

通知

继续咱们给大家做的案例

通知

做几个例子

通知

把这几个例子做完以后

通知

我们再给它

通知

我们再给大家说一下,如何通过代码,来实现自动布局

通知

虽然说,通过代码来实现自动布局,并不推荐

但是我们至少要会

至少要会做,就是说,

把这几个例子做完,咱们再用代码给大家写一个例子

如何用代码来实现自动布局

通知

把自动布局说完以后,紧接着,下来就是

通知

size classes

还有一个通过约束,来实现动画

然后再给大家把size classes说一下

通知

把这个size classes,再给大家说一下

通知

然后呢,把这个size classes

通知

这个说完以后

通知

说完以后

通知
通知
通知
通知
通知
通知

2.好,咱们上午,给大家说了一个,如何

通知

设置边距、以及设置边距的时候,注意两个问题:

1)一个是:设置边距的时候,注意,你要选择设置相对于谁的边距,不要这里直接点完就完了

通知

点完之后,你看一下

通知

设置是相对于谁的边距吧

把这里检查一下

2)第二个需要注意:你把这个约束

通知

Constrain to Margin

把这个勾掉,不然的话,就会有一个-16的边距

OK,这就是这两个需要大家注意的地方

3.好,那么把这个说完以后

接下来,我们继续看另外一个问题

就是我们的另外一个案例

我们试着把这个案例做一下

通知

这个案例,就是我们在屏幕的底部,在屏幕的最底部,有两个按钮

这两个按钮呢,宽度相等,高度也相等

并且,这两个按钮,中间的间距,是不是也相等

当我们的屏幕,横屏、或者说换不同屏幕的时候

要求,这两个按钮始终在屏幕的底边,显示

然后呢,当屏幕横屏以后

这两个蓝色、红色、按钮的之间的间距是20

保持不变

明白,我们接下来,就把这个部分给大家实现一下

大家先想一下,如果是你,你会怎么做

1)新建一个项目

2)Main.storyboard是不是有一个控制器

3)600 乘 600 的那个,别改它

4)然后呢,拽一个按钮,设置一些约束

5)再拽一个按钮,再设置一些约束

6)是不是就好了

但是,设置哪些约束呢

距离左边,距离底边、距离下边、距离上边、

是不是要设置一些,想想

先拽一个按钮,怎么样、怎么样、怎么样、

再拽一个按钮,怎么样、怎么样、怎么样、

来,想完以后,接下来,一起看一下

这个该怎么做

通知

4.新建一个项目

通知

新建

通知

Name:006自动布局案例-底部按钮相同间距

通知

创建好这个项目以后,我们打开这个Main.storyboard文件

通知

这就是我们那个控制器

首先,我们是不是要在控制器里面,拽两个按钮

先拽一个按钮

通知

然后呢

通知

我们先设置这一个按钮吧

哎,其实不需要按钮,View,是不是就可以了

按钮是不是还得有文字,我们直接来两个View,设置这个效果,就OK了吧

通知

OK,来两个View,就可以了

通知

拽一个View过来,好大,来,改一下它的背景色

通知

红色

通知

通知

OK,然后,改一下它的大小

通知

其实我这儿根本不需要改大小,我直接设完约束以后,更新一下,是不是就OK了

那我不改大小

看一下,怎么来更新

首先,设置我们这个红色View,首先,选中这个红色View

通知

注意,我这里给它起一个名儿

这里标记一下

方便等会儿观察,对吧

“红色View”

通知

来,设置它,设置它距离底边吧

通知

我们说,这个View,是不是距离这里是20,距离下边,也是20

通知

所以说,这个红色View,距离左边、和距离下边,都是20吧

好,选中它

通知

相关文章:

【AutoLayout案例03-设置底部按钮之间相同间距 Objective-C语言】

一、好,咱们继续啊 1.咱们继续把autoLayout介绍一下 咱们的自动布局 给大家介绍一下 那么,自动布局呢 继续咱们给大家做的案例 做几个例子 把这几个例子做完以后 我们再给它 我们再给大家说一下,如何通过代码,来实现自动布局 虽然说,通过代码来实现自动布局,并不推荐 但…...

代码随想录算法训练营20期|第七天|哈希表part02|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结

454.四数相加II 比较巧思的解法,先把nums1 和nums2的数两两相加,并存储sum和次数 再在nums3和nums4里找对应和sum和为0的数值i,j Time: N^2 Space:N^2, 最坏情况下A和B的值各不相同,相加产生的数字个数为 n^2 class Solution {public int fo…...

NavMeshPlus 2D寻路插件

插件地址:h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding (github.com) 我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了. 这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问…...

【03】基础知识:typescript中的函数

一、typescript 中定义函数的方法 函数声明法 function test1(): string {return 返回类型为string }function test2(): void {console.log(没有返回值的方法) }函数表达式/匿名函数 const test3 function(): number {return 1 }二、typescript 中 函数参数写法 1、typesc…...

ssm社区文化宣传网站源码和论文

ssm社区文化宣传网站源码和论文019 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 研究或设计的目的和意义: (一)研究目的: 通过本次课题能够将所学的Java编程知识以及Mysql数据库知…...

Go语言工程实践之测试与Gin项目实践

Go 语言并发编程 及 进阶与依赖管理_软工菜鸡的博客-CSDN博客 03 测试 回归测试一般是QA(质量保证)同学手动通过终端回归一些固定的主流程场景 集成测试是对系统功能维度做测试验证,通过服务暴露的某个接口,进行自动化测试 而单元测试开发阶段,开发者对单独的函数…...

排查docker无法启动问题

查看Linux系统操作日志(最后200行就可以排查): tail -200f /var/log/messages...

[C++ 网络协议] 套接字和地址族、数据序列

目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…...

AI 绘画Stable Diffusion 研究(八)sd采样方法详解

大家好,我是风雨无阻。 本文适合人群: 希望了解stable Diffusion WebUI中提供的Sampler究竟有什么不同,想知道如何选用合适采样器以进一步提高出图质量的朋友。 想要进一步了解AI绘图基本原理的朋友。 对stable diffusion AI绘图感兴趣的朋…...

线程池满了如何处理

某天搬砖时遇到一个问题,我创建了一个线程池执行任务,刚开始的时候还是一切,结果第二天发现有些任务没有正常执行。一看日志才发现是高峰期时线程池给我占用慢了,任务被丢掉了。 ​ 举个例子,我创建了一个线程池&#…...

Java多线程编程中的线程间通信

Java多线程编程中的线程间通信 基本概念: ​ 线程间通信是多线程编程中的一个重要概念,指的是不同线程之间如何协调和交换信息,以达到共同完成任务的目的。 线程间通信的目的 ​ 是确保多个线程能够按照一定的顺序和规则进行协作&#xff…...

write javaBean error, fastjson version 1.2.76

fastjson JSON.toJSONString 报错: > [0] JavaBeanSerializer.java->541: com.alibaba.fastjson.serializer.JavaBeanSerializer->write()> [1] JavaBeanSerializer.java->154: com.alibaba.fastjson.serializer.JavaBeanSerializer->write()>…...

Tomcat的部署及优化(多实例和动静分离)

目录 绪论 1、tomact 1.1 核心组件 1.2 什么是 servlet 1.3 什么是 JSP? 1.4 Tomcat 功能组件结构 1.5 Tomcat 请求过程 2、Tomcat 服务部署 2.1 tomcat自身优化: 2.2 内核优化 2.3 jvm 2.3.1 jvm配置 2.3.2 Tomcat配置JVM参数 2.3.3 jvm优化 3、tom…...

品牌推广革新之道:海外网红与内容营销的融合

随着数字时代的来临,品牌推广的方式正在经历着革命性的变化。传统的广告手段逐渐失去了吸引力,而内容营销正成为品牌推广的新宠儿。尤其是海外网红的崛起,不仅改变了推广方式,更重新定义了品牌与消费者之间的互动关系。本文Nox聚星…...

【 BERTopic应用 02/3】 分析卡塔尔世界杯推特数据

摄影:Fauzan Saari on Unsplash 一、说明 这是我们对世界杯推特数据分析的第3部分,我们放弃了。我们将对我们的数据进行情绪分析,以了解人们对卡塔尔世界杯的感受。我将在这里介绍的一个功能强大的工具包是Hugging Face,您可以在…...

TypeScript教程(三)变量声明

一、变量声明 变量是一种使用方便的占位符,用于引用计算机内存地址,可以将变量看做存储数据的容器 命名规则: 1.变量名称可以包含数字和字母 2.除了下划线_和美元$符号外,不能包含其他特殊字符,包括空格 3.变量名…...

【数据结构】堆的实现,堆排序以及TOP-K问题

目录 1.堆的概念及结构 2.堆的实现 2.1初始化堆 2.2销毁堆 2.3取堆顶元素 2.4返回堆的大小 2.5判断是否为空 2.6打印堆 2.7插入元素 2.8堆的向上调整 2.9弹出元素 2.10堆的向下调整 3. 建堆时间复杂度 4. 堆的应用 4.1 堆排序 4.2 TOP-K问题 1.堆的概念及结构 …...

释放马氏距离的力量:用 Python 探索多元数据分析

一、说明 马哈拉诺比斯距离(Mahalanobis Distance)是一种测量两个概率分布之间距离的方法。它是基于样本协方差矩阵的函数,用于评估两个向量之间的相似程度。Mahalanobis Distance考虑了数据集中各个特征之间的协方差,因此比欧氏距…...

【不限于联想Y9000P电脑关盖再打开时黑屏的解决办法】

不限于联想Y9000P电脑关盖再打开时黑屏的解决办法 问题的前言问题的出现问题拟解决 问题的前言 事情发生在昨天,更新了Win11系统后: 最惹人注目的三处地方就是: 1.可以查看时间的秒数了; 2.右键展示的内容变窄了; 3.按…...

策略模式实战应用

场景 假设做了个卖课网站,会员等级分为月vip、年vip、终生vip,每个等级买课的优惠力度不一样,传统的写法肯定是一堆的 if-else,现在使用策略模式写出代码实现 代码实现 策略模式的核心思想就是对扩展开放,对修改关闭…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...