这个文档是在你 完全熟悉 Objective-C 上用代码构造UI的前提下写的

官方教程:https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

*使用的一些截图和代码来自官方文档(不知道几年后这个链接还有没有效— —)

一.控件的写法:

一些基础控件,没有太多歧义,直接用 .属性名 来修改

 Text

 (显然California就是显示的文本内容)

 Image

简洁了好多,终于可以直接用图片的名字生成图片控件了

 预览图:

 二. stack

ZStack      HStack      VStack

Z -  Z轴 (重叠)

H - Horizontal 水平

V - Vertical 垂直

这三种Stack都会生成一个“View”,写在他的{}中的内容都会被add在stack的View中作为一个 整体 参与Stack的布局:

所以你也可以把这三种Stack在布局中视作一个控件/视图

用下面的代码直观的展示一下 HStack 和 VStack :

  预览图:

我们先看 “Joshua Tree National Park” 和 “California” 这两个Text

我们在代码中,把他们写在了一个 HStack 中,所以他们是水平方向布局的

同时,“Trutle Rock”这个Text,和↑上面这个HStack 又被写在了一个VStack中

然后我们就看到了,TurleRock和其余两个Text组成的整体是垂直方向布局的

如果你使用了ZStack,那么界面是沿Z轴叠放布局的

三.然后是我在布局中遇到的第一个问题:如何让控件能够靠着右边界布局?

apple 居然提供了一个专用的控件

Spacer()

Spacer()被加入后,会以“填满该空间”为目的调整自己的尺寸

所以在上面的布局中增加一个Spacer(),以“填满空间”为目的,后添加的“California”就被顶到了靠右边界的位置

四.padding

padding是控件的空白填充/边距

你为一个控件设置了padding之后,系统会在控件的边界生成空白的边距

padding(20) - 保留各方向20的留白

padding(.bottom, 20) - 只添加底部20的留白

如果你写了padding()但是没有给具体数值,系统会用一个默认值填充↓

[Swift] SwiftUI布局的一些写法基础(用Swift构造UI布局)的更多相关文章

  1. 几种常见布局的flex写法

    flex布局目前基本上兼容主流的浏览器,且实现方式简单.我整理了flex的一些知识点,并且总结归纳了几种常见布局的flex写法 ​flex基础知识点 flex-grow和flex-shrink相关计算 ...

  2. 零基础使用Swift学习数据科学

    概述 Swift正迅速成为数据科学中最强大.最有效的语言之一 Swift与Python非常相似,所以你会发现2种语言的转换非常平滑 我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数 ...

  3. 解析SwiftUI布局细节(二)循环轮播+复杂布局

    前言 上一篇我们总结的主要是VStack里面的东西,由他延伸到 @ViewBuilder, 接着我们上一篇总结的我们这篇内容主要说的是下面的几点,在这些东西说完后我准备解析一下苹果在SiwftUI文档 ...

  4. 01_Swift2基础之Swift简介+创建

    1.Swift 1> Swift初影响 Swift 是新一代的 iOS.OS X 和 watchOS 和 tvOS 的app开发编程语言. 中文名"雨燕",寓意为敏捷.灵巧而 ...

  5. 网页制作之html基础学习4-格式与布局

    1.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角弹窗 例: <head> <title>123</title> <sty ...

  6. swift 全局常量 && 全局变量的写法

    在OC里面 如果 想设置一个全局常量 很简单 使用简单宏定义  就搞定了 例如: #define    WEBAPIBASEURL  @"http://www.baidu.com/" ...

  7. Android布局需要知道的基础知识

    eclipse配置环境变量: 1.在 eclipse 中的 Window --> preferences  --> Android(安装了ADT的前提下才能看到Android) --> ...

  8. 【RN - 基础】之FlexBox弹性布局

    前言 弹性盒模型(The Flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同的屏幕,为盒装模型提供最大的灵活 ...

  9. AppleWatch___学习笔记(二)UI布局和UI控件

    1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...

  10. 让我们创建屏幕- Android UI布局和控件

    下载LifeCycleTest.zip - 278.9 KB 下载ViewAndLayoutLessons_-_Base.zip - 1.2 MB 下载ViewAndLayoutLessons_-_C ...

随机推荐

  1. drf-day4——序列化类常用字段和字段参数、序列化类source用法、序列化类定制字段返回内容的两种方式、序列化类的多表关联反序列化保存、反序列化字段校验、ModelSerializer的使用

    目录 一.序列化类常用字段和字段参数(了解) 1.1 常用字段类 1.2 常用字段参数 选项参数: 通用参数: 重点 二.序列化高级用法之source(了解) 2.1 序列化定制字段名字 三.序列化高 ...

  2. 学习Java Day12

    今天学习了多维数组

  3. Spring(AOP的认识、实现)

    2:Spring AOP AOP (Aspect Oriented Programming) 面向切面编程 OOP(Object Oriented Programming)面向对象编程,用对象的思想来 ...

  4. TreeMap排序Comparator()重写

    package map_;import java.util.Comparator;import java.util.TreeMap;/* * @author YAM */public class Tr ...

  5. 00-DLL劫持&C语言远程加载shellcode

    0x01 杀软拦截检测规则引导-DLL劫持上线 准备工具 cs vs2019 dll劫持工具:https://bbs.pediy.com/thread-224408.htm 极速PDF:https:/ ...

  6. 钓鱼攻击之:WEB 钓鱼

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. 钓鱼 ...

  7. CCRD_TOC_2008年第2期

    中信国健临床通讯 2008年第2期 目 录   类风湿关节炎 1. 纵向分析TEMPO数据:放射学损伤程度和进展速率决定了关节物理功能 van der Heijde D, et al. Ann Rhe ...

  8. CSS 页面整体变灰色

    body {-webkit-filter: grayscale(100%) !important;-moz-filter: grayscale(100%) !important;-ms-filter: ...

  9. Docker安装部署Mysql8(以作数据持久化)

    1.创建容器并进行持久化处理 #拉取镜像 docker pull mysql:8.0.20 #启动镜像,用于拷贝配置文件到宿主机 docker run -p 3306:3306 --name mysq ...

  10. Yapi安装配置(CentOs)

    环境要求 nodejs(7.6+) mongodb(2.6+) git 准备工作 清除yum命令缓存 sudo yum clean all 卸载低版本nodejs yum remove nodejs ...