SettingsView/设置页 的实现

1. 创建设置视图 SettingsView.swift

import SwiftUI/// 设置页面
struct SettingsView: View {/// 环境变量,呈现方式:显示或者关闭@Environment(\.presentationMode) var presentationMode/// 默认网址let defaultURL = URL(string: "https://www.google.com.hk")!// https://www.youtube.com/c/swiftfulthinkinglet youtubeURL = URL(string: "https://www.youtube.com")!// https://www.buymeacoffee.com/nicksarnolet coffeeURL = URL(string: "https://www.buymeacoffee.com")!/// 交易货币网址let coingeckoURL = URL(string: "https://www.coingecko.com")!/// 个人网站 https://www.nicksarno.comlet personalURL = URL(string: "https://blog.csdn.net/u011193452")!var body: some View {NavigationView {ZStack {// 背景Color.theme.background.ignoresSafeArea()// 内容List {// 应用介绍及网址 部分swiftfulThinkingSection.listRowBackground(Color.gray.opacity(0.2))//.listRowBackground(Color.theme.background.opacity(0.5))// 交易货币介绍及网址 部分coinGeckoSection.listRowBackground(Color.gray.opacity(0.2))// 开发者及网址 部分developerSection.listRowBackground(Color.gray.opacity(0.2))// 应用网址 部分applicationSection.listRowBackground(Color.gray.opacity(0.2))}.modifier(ListBackgroundModifier())}.font(.headline).accentColor(.blue).listStyle(.grouped).navigationTitle("Settings").toolbar {ToolbarItem(placement: .navigationBarLeading) {XMarkButton(presentationMode: presentationMode)}}}}
}extension SettingsView{/// 应用介绍及网址 部分private var swiftfulThinkingSection: some View{Section {VStack(alignment: .leading) {Image("logo").resizable().frame(width: 100, height: 100).clipShape(RoundedRectangle(cornerRadius: 20))Text("This app was made by following a @SwiftfulThinking course on YouTube. It uses MVVM Architecture, Combine, and CoreData!").font(.callout).fontWeight(.medium).foregroundColor(Color.theme.accent)}.padding(.vertical)// 跳转网址Link("Subscribe on YouTube 🎉", destination: youtubeURL)Link("Support his coffee addiction ☕️", destination: coffeeURL)} header: {Text("Swiftful Thinking")}}/// 交易货币介绍及网址 部分private var coinGeckoSection: some View{Section {VStack(alignment: .leading) {Image("coingecko").resizable().scaledToFit().frame(height: 100).clipShape(RoundedRectangle(cornerRadius: 20))Text("The cryptocurrency data that is used in this app comes from a free API from CoinGecko! Prices may be slightly delayed.").font(.callout).fontWeight(.medium).foregroundColor(Color.theme.accent)}.padding(.vertical)// 跳转网址Link("Visit CoinGecko 🦎", destination: coingeckoURL)} header: {Text("CoinGecko")}}/// 开发者及网址 部分private var developerSection: some View{Section {VStack(alignment: .leading) {Image("logo-transparent").resizable().frame(width: 100, height: 100).clipShape(RoundedRectangle(cornerRadius: 20))Text("This app was developed by Nick. It uses SwiftUI and is written 100% in Swift. The project benefits from multi-threading, publishers/subscribers, and data persistance.").font(.callout).fontWeight(.medium).foregroundColor(Color.theme.accent)}.padding(.vertical)// 跳转网址Link("Visit Website 🤙", destination: personalURL)} header: {Text("Developer")}}/// 应用网址 部分private var applicationSection: some View{Section {// 跳转网址Link("Terms of Service", destination: defaultURL)Link("Privacy Policy", destination: defaultURL)Link("Company Website", destination: defaultURL)Link("Learn More", destination: defaultURL)} header: {Text("Application")}}
}/// 适配 iOS 16 ListView 背景修改问题
struct ListBackgroundModifier: ViewModifier {@ViewBuilderfunc body(content: Content) -> some View {if #available(iOS 16.0, *) {content.scrollContentBackground(.hidden)} else {content}}
}struct SettingsView_Previews: PreviewProvider {static var previews: some View {SettingsView()}
}

2. 效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

v-model绑定input、textarea、checkbox、radio、select

1.input <div><!-- v-model绑定input --><input type"text" v-model"message"><h2>{{message}}</h2></div><script>const App{template:#my-app,data() {return {message:Hello World,}},}Vue.createApp(App).…

扁圆头带榫螺栓

声明 本文是学习GB-T 15-2013 扁圆头带榫螺栓. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了螺纹规格为M6&#xff5e;M24、 产品等级为C 级的扁圆头带榫螺栓。 2 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是…

IP真人识别方法与代理IP检测技术

随着互联网的发展&#xff0c;IP地址在网络安全和数据分析中扮演着重要的角色。为了维护网络的安全性和识别真实用户&#xff0c;IP地址的真实性和来源成为了一个关键问题。 什么是IP真人识别&#xff1f; IP真人识别是一种技术&#xff0c;旨在确定IP地址背后的用户是否为真实…

【Node.js】路由

基础使用 写法一&#xff1a; // server.js const http require(http); const fs require(fs); const route require(./route) http.createServer(function (req, res) {const myURL new URL(req.url, http://127.0.0.1)route(res, myURL.pathname)res.end() }).listen…

Java内存空间(学习随笔)

1、程序运行中栈可能会出现两种错误 StackOverFlowError&#xff1a; 若栈的内存大小不允许动态扩展&#xff0c;那么当线程请求栈的深度超过当前 Java 虚拟机栈的最大深度的时候&#xff0c;就抛出 StackOverFlowError 错误。OutOfMemoryError&#xff1a; 如果栈的内存大小可…

Zookeeper-JavaApI操作

JavaApI操作 JavaApI操作1) Curator 介绍2) Curator API 常用操作a) 建立连接与CRUD基本操作b) Watch事件监听c) 分布式锁c.1) 介绍c.2) Zookeeper分布式锁原理c.3) 案例&#xff1a;模拟12306售票 JavaApI操作 1) Curator 介绍 Curator 是 Apache ZooKeeper 的Java客户端库。…

工作杂记-YUV的dump和read

工作小记-YUV的dump和read 工作杂记-YUV的dump和read利用dump生成图片 yuv2imgyuv2img代码 工作杂记-YUV的dump和read 工作中涉及到模型验证相关的工作&#xff0c;这里是三个模型的共同作用&#xff0c;在感知模型读取图片的时候&#xff0c;把输入替换成自己给定的输入&…

STM32--WDG看门狗

文章目录 WDG简介IWDGIWDG的超时计算WWDGWWDG超时和窗口值设定独立看门狗工程WWDG工程 WDG简介 WDG看门狗&#xff08;Watchdog Timer&#xff09;是一种常见的硬件设备&#xff0c;在STM32F10系列中&#xff0c;有两种看门狗&#xff0c;分别是独立看门狗和窗口看门狗&#x…

Contextual Transformer Networks for Visual Recognition

Contextual Transformer Networks for Visual Recognition 1. 摘要2. 目的3. 网络设计 代码地址 1. 摘要 Transformer with self-attention has led to the revolutionizing of natural language processing field, and recently inspires the emergence of Transformer-style …

基于VUE的图书借阅管理系统的设计与实现

目录 一、摘要 二、技术描述 三、部分截图 四、获取方式 一、摘要 随着我国经济的高速发展&#xff0c;人们对图书的需求也愈发旺盛&#xff0c;而传统图书管理模式存在以下弊端&#xff1a;信息存储和分类操作不够高效&#xff0c;导致查找书籍困难&#xff1b;借还书流程…

Floorplanning with Graph Attention

Floorplanning with Graph Attention DAC ’22 目录 Floorplanning with Graph Attention摘要1.简介2.相关工作3.问题公式化4. FLORA的方法4.1 解决方案概述4.2 C-谱聚类算法 4.3 基于GAT的模型4.4 合成训练数据集生成 摘要 布图规划一直是一个关键的物理设计任务&#xff0…

基于SSM的网络安全宣传网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

笔训【day4】

目录 选择题 1、进制 格式 2、 数组名在&和sizeof后&#xff0c;表数组本身 3、求二维数组某元素地址 ​编辑 ​编辑 4、x x & (x-1) 二进制位1的个数 ​编辑 5、斐波那契递归次数 编程题 1、计算糖果 2、进制转换 选择题 1、进制 格式 十进制转二进制就除…

python sqlalchemy(ORM)- 01 简单使用

[doc] 简介 sqlalchemy 是python操作sql数据库的工具&#xff0c;是一个对象关系映射的框架&#xff1b;在python中提供高效、高性能的数据库访问&#xff0c;企业级的数据持久化模式&#xff1b;pypi 地址sqlalchemy官网 sqlalchemy架构 sql操作是独立于ORM操作的&#xf…

Hydra参数

kali的hyda参数 参数&#xff1a; hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns][-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT] -R 继续从上一次进度接着破解。 -S 采用SSL链接。 -s PORT 可通…

Outlook屏蔽Jira AI提醒

前言&#xff1a;最近不知道为什么jira上的ai小助手抽风&#xff0c;一周发个几千封邮件…导致我现在都不想在邮箱里面跟找垃圾一样找消息了。实在忍无可忍&#xff0c;决定屏蔽AI小助手&#xff0c;方法很简单&#xff0c;follow me~~ 第一步&#xff1a;双击打开电脑版Outloo…

iOS 面试题以及自我理解答案

1、简述push原理&#xff0c;push的证书和其他的有什么不一样&#xff1f; 第 一阶段&#xff1a;BeejiveIM服务器把要发送的消息、目的iPhone的标识打包&#xff0c;发给APNS。 第二阶段&#xff1a;APNS在自身的已注册Push服务 的iPhone列表中&#xff0c;查找有相应标识的iP…

vue3 组件v-model绑定props里的值,修改组件的值要触发回调

很早之前就写了&#xff0c;一直没写篇博客记录下 <select v-model"typeVal" />const emit defineEmits([update:type]); const props defineProps({type: { type: String, default: }, });const typeVal computed({get() {return props.type;},set(value…

Docker系列--镜像和容器备份与恢复的方法

原文网址&#xff1a;Docker系列--镜像和容器备份与恢复的方法_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍备份和恢复Docker镜像与容器的方法。 命令对比 保存与导出 docker save&#xff1a;保存的是镜像&#xff08;image&#xff09;。&#xff08;保存的是分层的…

关于:未同意隐私政策,应用获取ANDROID ID问题

一、环境 Unity2018 4.21f1、Android Studio、Windows10 二、问题描述 我在提交华为应用时&#xff0c;总是提示【未同意隐私政策&#xff0c;应用获取ANDROID ID个人信息】&#xff0c;但是我已经全部去掉了&#xff0c;后面问了人工客服&#xff0c;反馈了如下信息 调用堆…