Padding, Spacer, Initializer 的使用

news2024/12/25 13:18:44

1. Padding 的使用

  1.1 样式一

    1) 实现

func testText1()-> some View{
    Text("Hello, World!")
        .background(Color.yellow) // 背景颜色
        //.padding()              // 默认间距
        .padding(.all, 10)        // 所有的间距
        .padding(.leading, 20)    // 开始的间距
        .background(Color.blue)   // 背景
}

    2) 效果图:

  1.2 文本样式 2

    1) 实现

/// 文本样式 2
func testText2()-> some View{
    Text("Hell, World!")
        .font(.largeTitle)     // 字体大小
        .fontWeight(.semibold) // 权重
        .frame(maxWidth: .infinity, alignment: .leading) // 宽,对齐方式
        .background(Color.red) // 颜色
        .padding(.leading, 30) // 间距
}

    2) 效果图:

  1.3 文本样式 3

    1) 实现

/// 文本样式 3
func testTest3()->some View{
    VStack(alignment: .leading) {
        Text("Hell, World!")
            .font(.largeTitle)     // 字体大小
            .fontWeight(.semibold) // 权重样式
            .padding(.bottom, 20)  // 向下间距
        
        Text("This is the description of what we will do on this screen. It is multiple lines and we will align the text to the leading edge.") // 文本
    }
    .padding() // 默认间距
    .padding(.vertical, 10) // 垂直间距
    .background(
        Color.white
            .cornerRadius(10)
            .shadow(color: Color.black.opacity(0.3), radius: 10, x: 0.0, y: 10)
    ) // 背景: 圆角,阴影
    .padding(.horizontal, 10) // 水平间距
}

    2) 效果图:

2. Spacer 的使用

  2.1 垫片水平堆栈

    1) 实现

// 垫片水平堆栈
func spacerHStack() -> some View{
    HStack(spacing: 0){
        //垫片,将控件向两边推 nil == 8/10
        Spacer(minLength: 0)
            .frame(height: 10)
            .background(Color.orange)
        Rectangle()
            .frame(width: 50, height: 50) // 矩形
        Spacer()
            .frame(height: 10)
            .background(Color.orange)
        Rectangle()
            .fill(Color.red)
            .frame(width: 50, height: 50)
        Spacer()
            .frame(height: 10)
            .background(Color.orange)
        Rectangle()
            .fill(Color.green)
            .frame(width: 50, height: 50)
        //垫片,将控件向两边推
        Spacer()
            .frame(height: 10)
            .background(Color.orange)
    }
    .background(Color.yellow)
    //.padding(.horizontal, 200)
    .background(Color.blue)
}

    2) 效果图:

  2.2 垫片 VH 堆栈

    1) 实现

// 垫片 VH 堆栈
func spacerVHStack() -> some View{
    VStack {
        HStack(spacing: 0){
            Image(systemName: "xmark") // 图片
            Spacer()// 垫片
                .frame(height: 2)
                .background(Color.orange)
            Image(systemName: "gear")  // 图片
        }
        .font(.title)
        //.background(Color.yellow)
        .padding(.horizontal)
        //.background(Color.blue)
        
        Spacer()// 垫片
            .frame(width: 2)
            .background(Color.orange)
        
        Rectangle()
            .frame(height: 55)
    }
    //.background(Color.yellow)
}

    2) 效果图:

3. Initializer 的使用

  3.1 实现

/// 初始化与枚举
struct InitializerBootcamp: View {
    let backgroundColor: Color
    let count: Int
    let title: String
    
    init(count: Int, fruit: Fruit) {
        self.count = count;
        if fruit == .apple{
            self.title = "Apples"
            self.backgroundColor = .red
        }else{
            self.title = "Oranges"
            self.backgroundColor = .orange
        }
    }
    
    /// 枚举
    enum Fruit{
        case apple
        case orange
    }
    
    var body: some View {
        // 垂直堆栈
        VStack(spacing: 15){
            Text("\(count)")
                .font(.largeTitle)
                .foregroundColor(.white)
                .underline()
            
            Text(title)
                .font(.headline)
                .foregroundColor(.white)
        }
        .frame(width: 150, height: 150)
        .background(backgroundColor)
        .cornerRadius(10)
    }
}

struct InitializerBootcamp_Previews: PreviewProvider {
    static var previews: some View {
        HStack {
            InitializerBootcamp(count: 58, fruit: .orange)
            InitializerBootcamp(count: 23, fruit: .apple)
        }
    }
}

  3.2 效果图:

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

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

相关文章

真题详解(数字签名算法)-软件设计(七十八)

真题详解(有限自动机)-软件设计(七十七)https://blog.csdn.net/ke1ying/article/details/130748759 可用于数字签名算法的是_____。 答案:非对称RSA 移植性:易安装、易替换、适应性。 UML状态图转换不正确的是______。 活动可以在转换时执…

药包材国家标准ybb2020-电子版在线阅读

国家药包材标准对于药品的质量和安全至关重要,因此需要查阅国家药包材标准来确保药品的质量和安全。 对于一些医药生产企业、药品检验机构、药品注册申请人、医疗机构来说他们查阅相关国家药包材标准可以说是轻车熟路,但对于部分新入行或普通人群想要了…

要想工作流程更简便,试试开源web表单设计器

繁杂的工作流程,让您头疼不已?传统的表单制作效率低?内部数据迟迟得不到有效管理?…作为职场人的你,是否经常遇到上述问题。别着急,在如今的快节奏发展时代,传统的表单制作已经满足不了行业和市…

python3 爬虫相关学习5: python相关工具:anaconda,sublime_text等等

前言 1 作为一个中国人坚决不用notepad 2 sublimeText 3 anaconda 1 sublime Text 下载地址 Sublime Text - Text Editing, Done Righthttp://www.sublimetext.com/ 下载是个绿色包解压缩即可用快捷方式需要自己剪切 2 导航器/浏览器 /平台 Anaconda 下载地址 Anaconda…

【学习日记】在不可联网电脑上按照Python和深度学习环境

测试环境 Hyer-V上开了个虚拟机,win7-64位企业版,全新未安装任何环境的最基本的操作系统。 因为不联网安装,而且是win7这种古老的操作系统,确实会遇到很多问题。做个记录。 安装Python 打开python-3.7.8.exe 安装程序 此时可能…

Unity之新版InputSystem如何自定义InputActions

前言 上一篇文章,我们介绍了如何使用新版本的InputSystem,我们知道了InputActionsAsset给我们提供了更多的灵活性,扩展性和复用性。那么这篇文章我们就来介绍一下如何创建自定义InputActionAsset 创建InputActionAssets Input Action Asse…

YOLOv5/v7 改进实战 | 目录 | 使用教程

YOLOv5/v7 改进实战 | 目录 | 使用教程 本专栏包含超多YOLO算法改进使用教程;全专栏阅读量50 w,改进YOLO必看教程,所有改进都提供详细手把手教程,欢迎大家订阅~ 专栏地址:点击跳转 整体目录如下: 使用教程系…

React脚手架搭建

介绍 react提供了一个用于创建 react项目的脚手架库: create-react-app 全局安装react脚手架 npm i -g create-react-app 创建项目 create-react-app 项目包名 静等一会儿 创建成功 切换到创建的目录 输入 npm start或yarn start启动项目 项目基本结构介绍 自定义简单组件 p…

数影周报:三星核心技术遭泄露,阿里宣布多业务启动融资上市计划

本周看点:三星再次发生核心技术信息泄露事件;领英职场将停止服务;阿里宣布多业务启动融资上市计划;Bolttech获得2亿美元B轮融资...... 数据安全那些事 三星再次发生核心技术信息泄露事件 2023年5月17日消息,据Business…

智能二狗机器人使用攻略,微信群活跃助手

群里聊天的人来来去去就那几个?聊来聊去都是一样的话题? 要怎么才能丰富社群的玩法体验,提高成语的积极性,打造99社群呢? 别慌,让二狗机器人来拯救你的无聊! 数十款互动玩法,轻松…

Token 常用的加解密算法

常用的 Token 加密算法包括对称加密算法和非对称加密算法。对称加密算法使用相同的密钥来进行加密和解密,加密速度快,但是密钥传输和管理较为复杂。非对称加密算法使用一对公钥和私钥来进行加密和解密,加密速度慢,但是密钥传输和管…

基于html+css的图展示79

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

西安石油大学上机作业2023.5.19

上机的一次作业 上机作业: 编写一个基本帐户类。成员变量包括:帐号、储户姓名和存款余额,成员函数包括:存款和取款。编写一个测试程序对该类功能进行测试。 要求:上传源码及运行结果截图。 分析思路: 针…

面试造航母,入职拧螺丝,工资离了个大谱...

有粉丝跟我吐槽说:金三银四去面试软件测试岗,真的是面试造航母,入职拧螺丝,工资还低 这种现象很正常,因为找一个测试员,当然希望他能做的业务越多越好,最好像机器猫一样,啥事儿都能…

数据结构与算法(四)

一、链表 线性表:0个或者是多个数据元素有限序列 物理的存储结构: 顺序存储:用一段连续的存储单元依次存储线性表的数据元素。链式存储:内存地址可以是连续的,也可以是不连续的。把数据元素存放在任意的存储单元里&…

寻找人工智能工具?警惕散布红线恶意软件的流氓网站

针对OpenAI ChatGPT和Midjourney等生成式人工智能服务的恶意谷歌搜索广告被用来将用户引导到一些粗糙的网站,这是BATLOADER活动的一部分,旨在传播红线窃取软件。 eSentire在一份分析报告中表示:“这两种人工智能服务都非常受欢迎,但缺乏第一…

Windows环境下pcl点云库 安装配置教程

本文为Windows配置点云库pcl步骤,具体win10、visual studio 2017、pcl1.11.1。 【1】下载安装包 Releases PointCloudLibrary/pcl GitHub 其中,AllInOne是一个包含了PCL库所有模块的单独下载包,方便快速获取整个PCL库,而pdb则…

【腾讯云 Finops Crane 开发者集训营】浅谈Crane的核心概念和原理

一、Crane是什么? FinOps(Financial Operations)是一种管理云计算成本的方法,它强调将云计算资源的成本与使用情况及业务需求相匹配,从而提高企业的效率和效益。在当前云计算环境下,FinOps已经成为了越来越…

如何理解工业互联网与智能制造,怎么共建智慧工厂?

第六届数字中国建设峰会26日在福州开幕,在这个数字化新技术的变革风口,企业如何把握机遇,借工业互联网和智能制造实现智慧工厂建设? 探讨三个问题: 什么是工业互联网、智能制造、智慧工厂;它们三者之间的…

Vm2沙箱逃逸漏洞复现(CVE-2023-32314)

0x01 产品简介 Node.js Node.js 是一个基于 V8 引擎的开源、跨平台的 JavaScript 运行环境,它可以在多个操作系统上运行,包括 Windows、macOS 和 Linux 等。Node.js 提供了一个运行在服务器端的 JavaScript 环境,使得开发者可以编写并发的、…