首页 > 其他分享 >[Swift] SwiftUI布局的一些写法基础(用Swift构造UI布局)

[Swift] SwiftUI布局的一些写法基础(用Swift构造UI布局)

时间:2022-11-18 09:57:59浏览次数:51  
标签:控件 20 HStack 布局 padding SwiftUI Swift

这个文档是在你 完全熟悉 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()但是没有给具体数值,系统会用一个默认值填充↓

 

标签:控件,20,HStack,布局,padding,SwiftUI,Swift
From: https://www.cnblogs.com/OranBlog/p/16902194.html

相关文章

  • html grid 布局与拖动
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8"/>5<metahttp-equiv="X-UA-Compatible"content="IE=edge"......
  • iOS-Swift将Localizable.strings中没有被引用的无用字符串文案全局扫码删除处理abando
    分享一个iOS扫描Localizable.strings的工具https://github.com/ijoshsmith/abandoned-strings最近项目需求需要把iOS和安卓两端文案统一一下然后添加适配更多的语言库,首......
  • flex布局中,元素等间距设置,包括第一个元素的左边,最后一个元素的右边,也等间距
    项目中很多地方会用到等间距排放的场景,使用flex布局可以很方便的实现.fu{display:flex;ustify-content:space-between;}通过上面代码,可以实现子元素的等间距......
  • 布局
    介绍http://ruanyifeng.com/blog/2015/07/flex-grammar.html应用https://juejin.cn/post/6844903614280892429#heading-0骰子https://juejin.cn/post/711245167861537......
  • Flex 布局教程:语法篇
    参考:http://ruanyifeng.com/blog/2015/07/flex-grammar.html网页布局(layout)是CSS的一个重点应用。布局的传统解决方案,基于盒状模型,依赖display属性+position属性......
  • CSS布局2
    结构伪类选择器          ◆伪元素       ◆浮动               ◆清除浮动 ......
  • 通过 BFC 实现页面布局
        实现效果如图<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><title>Title</title><style>......
  • 新增弹框内表单布局
    //表单element-ui//表单<el-formlabel-width="120px":model="form":rules="rules"ref="form"><el-form-itemprop="rulesprop"label="部门名称">//文本框<......
  • Linux虚拟地址空间布局
       在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(VirtualAddressSpace),在32位模式下它是一个4GB的内存地址块。在Linux系统......
  • SwiftUI 灵动岛Dynamic Island
    灵动岛基本信息灵动岛(DynamicIsland)相关API,隶属于LiveActivityFramework,出现在iOS16.1系统;LiveActivities负责在iPhone锁屏(LockScreen)和灵动岛(DynamicIsland)中显示......