这个文档是在你 完全熟悉 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. MRS_外部库相关问题汇总

    解决问题如下: CH32V307使用IQMath库时 使用MRS时,当使用到math数学库 CH32V307使用IQMath库时 CH32V307是支持硬件浮点的,可以是math.h中的sinf.IQ ...

  2. 【LeetCode】三数之和+四数之和(双指针)

    之所以放在一起是因为,"四数之和"的解题方法基本与"三数之和"一致 由此我们可以推出n数之和的解法 本质上,我们只是使用双指针的方法降低此类问题的时间复杂度 当 ...

  3. JAVA虚拟机03-常量池项中字面量和符号引用

    转https://baijiahao.baidu.com/s?id=1682261792528500739&wfr=spider&for=pc 1 符号引用 符号引用以一组符号来描述所 ...

  4. 不花钱几分钟让你的站点也支持https

    前言 现在,免费SSL证书已经很普遍了,但是,申请和配置SSL证书仍然是一件较为繁琐的事,修改web服务配置在所难免,且不同的web服务配置方法不一样,不具备通用性.本文介绍一种通用的快速配置方法,w ...

  5. c++ 程序通用多线程单例设计 c++ web 框架设计经验谈

    设计 c++ web 框架时候,想要一个框架缓存类,很多通用缓存类是用字符保存,作为框架内置就不要序列和反序列了,因为框架内部使用. 想给自己的paozhu c++ web 框架添加缓存类,参考了sp ...

  6. 2.2.vue用法在uniapp中的使用_

    开发的H5页面可以用div,但是适应小程序的用法,得参考uniapp的组件章节,用view包裹.

  7. Windows MongoDB的安装及配置图文说明(非常详细)

    1.下载 MongoDB 预编译二进制包下载地址:https://www.mongodb.com/try/download/community 2.安装 1)选择接受许可协议,点击Next下一步: 2 ...

  8. 郁金香 注入DLL代码 与MFC窗口DLL文件 开源

    10/10号更新 DLL注入器注入DLL卡死 问题 新增打开控制台 将阳光输出到控制台中 注入DLL代码 1 #include <stdio.h> 2 #include<Window ...

  9. 用 HTTP 协议下载资源(WinINet 实现)

    用 HTTP 协议下载资源(WinINet 实现) WinINet 使用 HTTP 协议下载资源的流程 相关函数 InternetCrackUrl 解析 URL BOOL InternetCrackU ...

  10. ctfshow-web入门-SSTI学习

    千万要仔细,不要拼错单词 千万要仔细,不要拼错单词 千万要仔细,不要拼错单词 web 361 payload name={{[].__class__.__base__.__subclasses__() ...