SwiftUI学习01-基本使用
SwiftUI 是苹果推出的一种现代化方式,用于创建跨所有 Apple 平台的用户界面。它通过声明性语法简化了 UI 的开发流程。下面是一个基本的 SwiftUI 示例,展示了如何使用 SwiftUI 构建一个简单的 "Hello World" 应用。
示例步骤
1. 创建一个新的 SwiftUI 项目
打开 Xcode,选择 "新建项目" 并选择 "App" 模板。在创建项目前,确保使用 "SwiftUI" 作为用户界面,语言选择 "Swift"。
2. 基本的 "Hello World" 示例
创建项目后,Xcode 会生成一个基本的 SwiftUI 文件。以下是如何使用 SwiftUI 实现一个最简单的 "Hello World" 示例:
import SwiftUI @main
struct HelloWorldApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
} struct ContentView: View {
var body: some View {
Text("Hello, World!")
.padding()
.font(.largeTitle)
.foregroundColor(.blue)
}
}
解释代码
@main:@main是 Swift 应用的入口点。在 SwiftUI 应用中,@main标记的结构体遵循App协议,定义了应用的主界面和行为。HelloWorldApp:这是应用的主入口,定义了应用启动时创建的场景(窗口)。
WindowGroup:WindowGroup定义了一个窗口内容。每个WindowGroup都包含一个ContentView。ContentView:这是一个遵循
View协议的结构体,定义了用户界面。Text:Text是一个显示静态文本的视图。你可以附加多个修饰符(例如padding,font, 和foregroundColor)来修改文本的外观。
增强示例:带有按钮的示例
我们可以进一步增强这个示例,通过添加一个按钮,实现点击按钮改变文本内容的功能。
import SwiftUI @main
struct HelloWorldApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
} struct ContentView: View {
@State private var message = "Hello, World!" var body: some View {
VStack {
Text(message)
.padding()
.font(.largeTitle)
.foregroundColor(.blue) Button(action: {
message = "Button Clicked!"
}) {
Text("Click Me")
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
}
}
}
}
解释新增的代码
@State:@State属性包装器用于声明视图中的状态变量。状态变量变化时视图会自动更新。VStack:VStack是垂直堆栈视图,安排其子视图垂直排列。Button:Button表示一个按钮视图。action闭包在按钮点击时执行。
通过以上步骤与代码,你就可以实现一个简单的 SwiftUI 视图,并体验 SwiftUI 带来的简洁与高效的开发体验。如果你继续深入学习 SwiftUI,会发现更多丰富的特性和强大功能。
SwiftUI学习01-基本使用的更多相关文章
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- Java学习01
Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...
- ThinkPhp学习01
原文:ThinkPhp学习01 一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板 ...
- 【iScroll源码学习01】准备阶段 - 叶小钗
[iScroll源码学习01]准备阶段 - 叶小钗 时间 2013-12-29 18:41:00 博客园-原创精华区 原文 http://www.cnblogs.com/yexiaochai/p/3 ...
- JVM学习01:内存结构
JVM学习01:内存结构 写在前面:本系列分享主要参考资料是 周志明老师的<深入理解Java虚拟机>第二版. 内存结构知识要点Xmind梳理 案例分析 分析1 package com.h ...
- webservice学习01:wsdl文档结构
webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...
- spring学习(01)之IOC
spring学习(01)之IOC IOC:控制反转——Spring通过一种称作控制反转(IOC)的技术促进了低耦合.当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创 ...
- vue学习01
vue学习01 1. 创建一个Vue实例官网-学习-教程-安装-(开发/生产版本)-与jQuery的引用相似 <!DOCTYPE html> <html> <head ...
随机推荐
- 单体项目使用Spring Security实现登陆认证授权
前端可以根据权限信息控制菜单和页面展示,操作按钮的显示.但这并不够,如果有人拿到了接口,绕过了页面直接操作数据,这是很危险的.所以我们需要在后端也加入权限控制,只有拥有操作权限,该接口才能被授权访问. ...
- Django项目目录结构
- Python爬图片
1 import requests 2 from lxml import etree 3 4 header = { 5 "user-agent": "Mozilla/5. ...
- 通过 InnoSetup 美化安装界面
InnoSetup 的美化相应的帖子也比较多,但是代码不是很全...所以我专门出了这篇文章来记录下这个美化过程.废话不多说,先上个成果: 前端er们可以直接下载 vue-nw-seed 这个分支,一键 ...
- OPA Gatekeeper:Kubernetes的策略和管理
目录 一.系统环境 二.前言 三.OPA Gatekeeper简介 四.在kubernetes上安装OPA Gatekeeper 五.gatekeeper规则 5.1 使用gatekeeper禁止某些 ...
- REACT 前端界面提交
在react项目中安装代理中间件 setupProxy.js文件 const { createProxyMiddleware: proxy } = require('http-proxy-middle ...
- SELinux(一) 简介
首发公号:Rand_cs 前段时间的工作遇到了一些关于 SELinux 的问题,初次接触不熟悉此概念,导致当时配置策略时束手束脚,焦头烂额,为此去系统的学习了下 SELinux 的东西.聊 SELin ...
- 支付宝支付jemter 插件,导入到高版本jmeter 中使用
官方支付宝压力测试文档中: 蚂蚁金服开放平台 - 文档中心 (alipay.com) 有个 temp.jmx 文件(http://p.tb.cn/rmsportal_10157_temp.jmx.zi ...
- docker综合应用
1.容器资源限制 官网文档 https://docs.docker.com/config/containers/resource_constraints/ 2.docker内存限制 -m或者--mem ...
- MyBatis 的好处是什么?
a.MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的维护带来了很大便利. b.MyBatis 封装了底层 JDBC API 的调用细节,并能自动 ...