使用Xcode13进行Swift开发

  • 1.软件
    • Xcode
  • 2.快捷键
  • 3.应用功能
    • 3.1 VStack,HStack,ZStack
    • 3.2 frame,foregroundColor,cornerRadius,shadow,resizable与aspicRatio
    • 3.3 font,fontWeight,offset,rotationEffect和rotation3DEffset
    • 3.4 @State,onTapGuesture与animation
    • 3.5 gesture和DispatchQueue
    • 3.6 stroke,trim与Linear Gradient
    • 3.7 加载动画:Binding与onAppear
    • 3.8 sheet
    • 3.9 拖动实现:CGSize
    • 3 .10 提取子视图
  • 4.小组件
  • 5.真机调试
  • Xcode更新换代有点频繁,谨慎更新。

1.软件

Xcode

从AppStore中获取

以及 SF Symbol

https://developer.apple.com/sf-symbols/

SF Symbols provides thousands of consistent, highly configurable symbols that integrate seamlessly with the San Francisco system font, automatically aligning with text in all weights and sizes.----苹果官网

2.快捷键

自动缩进:Ctrl + I
编译:Command + B
在模拟器上运行或真机调试:Command + R
当然还有很多,但是常用的就这些了

3.应用功能

3.1 VStack,HStack,ZStack

VStack指 vertical stack也就是垂直堆栈

HStack指 horizontal stack也就是水平堆栈

ZStack是三维堆栈

3.2 frame,foregroundColor,cornerRadius,shadow,resizable与aspicRatio

.frame用于设置框架
.resizable用于给图片重新设置大小

foregroundColor用于给View设置前景色。
.aspicRatio用于将图片拉伸时保持纵横比,包括.fit和.fill
fit将固定短边的长度,长边纵横比缩放
fill将固定长边的长度,将短边纵横比缩放

cornerRadius用于对一个View圆角

shadow用于对一个view创建投影(阴影)

3.3 font,fontWeight,offset,rotationEffect和rotation3DEffset

font:设置字体大小
fontWeight:设置字体重量

offset用于偏移一个View(视图)

rotationEffset和rotation3DEffset用于平面和立体旋转

3.4 @State,onTapGuesture与animation

@State创建一个状态
onTapGuesture用于在点击时执行
animation用于动画

3.5 gesture和DispatchQueue

gesture需要带参数,例如LongPressGesture()和onEnded
DispatchQueue用于延迟

3.6 stroke,trim与Linear Gradient

stroke,镂空一个图形
trim,用于修建图形
Linear Gradient用于渐变

3.7 加载动画:Binding与onAppear

首先新建一个SwiftUI文件,命名为LoadingView

首先一个加载动画我想用一个圈转,但单转还单调了,所以还需要进行一些3D旋转
程序中的圈我打算复制前面代码中的渐变圈

onAppear是在看到时做出一个动作。这里用于触发条件
animation中用

.animation(Animation.linear(duration: /*一些代码*/)./*一些代码*/)

Binding:

调用:视图(变量 变量)   // 这里变量一般要加$
视图{@Binding var 变量: 变量类型
}


然后就可以在主程序中进行调用了

3.8 sheet

如果我想用一个按钮来召唤视图,那么我就需要它

3.9 拖动实现:CGSize

在App中有很多都有拖动一个有文字的框去移动,为了实现这个功能,我们需要一个变量来存放触控信息

3 .10 提取子视图

我可以将最上面的按钮提取一个子视图

然后按照相同步骤为下面的按钮和文本分别提取子视图
简洁了许多

4.小组件

有时候你需要为你的App创建小组件,那么具体步骤如下:
File->New->Target然后会弹出选项框
根据步骤创建

确保你需要在小组件中调用的swift文件检查器如图所示

进入小组件的swift文件,将预览中的小组件如下复制三份,并分别设置小中大

然后按照下面步骤来创建子视图
我这里暂时都用Hello World!

在主函数上添加

@Environment(\.widgetFamily)var family

然后用上子视图

struct Test_WidgetEntryView : View {var entry: Provider.Entry@Environment(\.widgetFamily)var familyvar body: some View {if family == .systemSmall {Test_Widget_small()}else if family == .systemMedium {Test_Widget_Medium()}else {Test_Widget_Large()}}
}

接着

然后就是编程了

5.真机调试

USB连接设备,然后
Xcode->Preferences->Accounts->±>Apple ID登陆,然后选择USB设备,运行。
完美!

Xcode更新换代有点频繁,谨慎更新。

使用Xcode13进行Swift开发相关推荐

  1. 《Swift开发实战》——第2章,第2.4节函数和闭包

    本节书摘来自异步社区<Swift开发实战>一书中的第2章,第2.4节函数和闭包,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.4 函数和闭包 在本 ...

  2. 《Swift开发实战》——第16章,第16.2节下标脚本用法

    本节书摘来自异步社区<Swift开发实战>一书中的第16章,第16.2节下标脚本语法,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 16.2 下标脚本 ...

  3. 《Swift开发实战》——导读

    本节书摘来自异步社区<Swift开发实战>一书中的目录,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 内容简介 前 言 第1章 工欲善其事,必 ...

  4. 《Swift开发实战》——第1章,第1.4节启动iOS 8模拟器

    本节书摘来自异步社区<Swift开发实战>一书中的第1章,第1.4节启动iOS 8模拟器,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.4 启动i ...

  5. swift开发体验,论objective-c与swift的选择

    使用swift开发已经有半年之久了,期间做了一个电商应用,类似京东,苏宁的.主要谈谈感受,swift简洁的语法,不用写分号,所有自己写得工具类,第三方类库,都能自动import,着实令人大呼过瘾. 但 ...

  6. 用swift开发仪表盘控件(一)

    苹果swift刚刚推出不久,接触到这个语言是一个偶然的机会,无聊之余随便看了下它的语法: 瞬间就被感动了,switch 中竟然大胆淘汰了break,全然是反人类的做法.其它语言没这么大胆和聪明,基本上 ...

  7. swift int转string_用Swift开发macOS程序,九、目录模块

    程序中跟目录模块相似的,也是通过使用Outline View组件显示内容的模块有:备注.搜索.角色.符号.字典等其它五个.设计完成本模块后将不再对其它模块进行说明,一切请查看Github上代码.目录模 ...

  8. IOS swift开发——获取设备定位信息

    作为GIS开发人员,学习任何Android或者swift开发语言,可能第一时间想到的就是获取设备的定位信息.这里就来简述一下,我使用swift获取IOS定位信息的过程. 目录 添加后台定位能力 模拟器 ...

  9. linux swift开发环境,Linux平台swift语言开发学习环境搭建

    摘要 介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨 ...

最新文章

  1. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
  2. 十年磨一剑!程序员老兵成新将
  3. Django + Nginx + Uwsgi + Celery + Rabbitmq 做一个高速响的应网站架构
  4. cs-HtmlHelpers
  5. Ch2 空间配置器(allocator) ---笔记
  6. 面向对象之三大特性:继承,封装,多态
  7. oracle查询结果存入临时表,Oracle查询问题引发临时表使用
  8. Java基础入门笔记-Eclipse快捷操作
  9. db2插入的时候怎么自增_3篇长文讲“自增ID”,大部分人仍然搞错了!?
  10. 【opencv】图像处理之开闭运算
  11. relu函数_【AI初识境】激活函数:从人工设计(sigmoid,relu)到自动搜索(swish)
  12. mysql错误诊断_MySQL Server无法启动错误诊断一则
  13. Mac 安装 MySQL 教程
  14. JAVA生成32位随机字符串工具
  15. 硬盘安装Win7教程!无光驱无U盘照样装Win7
  16. Android图片处理之Glide使用大全
  17. Two‘s Complement(二进制补码)
  18. selenium上传附件(借助AutoIt识别Windows上传窗口)
  19. 2020 知来者之可追
  20. 【第八期送书活动】+ 购书福利

热门文章

  1. 互联网环境中最实用的微信网上售票系统和自动售票管理系统介绍
  2. Error creating bean with name Maven项目编译错误怎么解决
  3. 手把手教你给偶像刷票。偶像来了?程序员来了!Charles实战
  4. 2020-1-18学习总结
  5. 使用SQL语句修改表结构(SQL Server)
  6. android音乐播放器监听器,android 音乐播放器电话监听
  7. win7如何一劳永逸的使用管理员运行cmd
  8. 基于JavaEE的减脂训练营营员管理系统
  9. 瑞士卢加诺大学(USI) Dynamic Analysis Group 博士招生
  10. 博客主Judge已跳槽搬家emmm