swiftUI学习(2)

1.控件

swift UI有两种让用户和数字进入的方式
slider滑块,让我们选择更多范围的数字,但精确度较低

1)Stepper

是一个简单的加号和减号的按钮,可以点击它们进行选择确切的数字
在这里插入图片描述
与sleepAmount绑定。
in则是控制范围在4-12,不设置范围则在存储范围内变化,step是每次变化量,默认为1。
需要匹配用于绑定的类型,如果设置的为整型,变化量也只能为整型。
specifier插值说明符
%.2f,保留两位小数在这里插入图片描述
%g去掉多余的部分
在这里插入图片描述
在这里插入图片描述

2)DatePicker

swiftUI提供一种特别的选择器类型,称为日期选择器,可以绑定到date属性,是swift具有专用日期类型,
可以选择日期和时间
在这里插入图片描述
在这里插入图片描述
隐藏标签,如图可以看见当标签字符串为空时,仍然会给标签留空位,我们使用标签隐藏修饰符.lablelsHidden()
就不再显示了
在这里插入图片描述
可以选择精确时间显示
在这里插入图片描述
控制时间范围
可以自己设定范围
在这里插入图片描述
但也可以使用swift来形成一个单边范围Date()…从现在往后的时间,过去的时间不能选择
在这里插入图片描述

3)list

苹果对List的基本定义是在单列中排列显示数据行的容器。List 和 Form 其实都是SwiftUI对UITableView的一个封装,他们在内部实现的机理基本上是一样的。
Form不支持绑定Selection,因此Form无法实现选择功能

提供一个滚动数据表格,实际上与form几乎相同,只是用于表示数据而不是请求用户输入。
在这里插入图片描述

.listStyle(.grouped)//可以更改列表形式
List(0..<5){
    Text("Dynamic row \($0)")
}//可以直接遍历
List{
	ForEach(0..<5){
    	Text("Dynamic row\($0)")
    }
}

在这里插入图片描述

2.其他

1)处理日期

使用终端
cal可以打印当月月历
输入cal 9 1752,你会发现整整十二天不见了
这是由于英国更换历法
在这里插入图片描述
你会发现处理日期非常困难,比想象中难比如不同地区的时间不同
日期在我们的代码中很重要,我们应该依靠苹果框架处理我们正在制作的项目中将使用日期的计算和格式。

2)URL

URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎处理它。

Xcode构建iOS应用会创建一种称为捆绑的东西,在所有的Apple平台上运行,它允许系统储存单个应用程序的所有文件都放在一个二进制代码中。进行更深入学习后,将学习如何在单个应用程序中实际包含多个捆绑软件。
通常要在文件包中查找放置的文件包,这是一个被称为URL的新数据类型,它不仅可以存储网址,还可以安装以下位置这就是它在这里有用的原因。

URL内的内容并不重要,因为iOS使用的路径无法猜测我们的应用程序位于自己的沙箱中,一旦有了URL,我们就可以将其加载到带有特殊字符的字符串中,我们可以为他初始化程序字符串内容提供一个文件URL,然后它将发回包含该文件内容的字符串,如果不能加载,加载会引起错误,需要try或try?
在这里插入图片描述

3)API

iOS为我们提供了一些非常强大的APi,可用于处理字符串,包括将它们拆分为数组,可以删除空格,甚至可以检查拼写问题

在这里插入图片描述

告诉检查器要检查多少字符,可能只想检查用户的文本选择,而不是整个文档。但是一个问题,swift使用非常先进的字符串处理方式,使您可以使用复杂字符比如表情的用法与使用英文完全相同,但是Objective-c不使用相同的字母储存方式,这意味着我们将要求swift创建一些使我们所有字符的整个长度来定义C字符串的范围。
Objective-c没有任何概念可选的,因此依赖特殊值来表示此中缺少数据,例如,如果Objective-c范围返回空,即如果没有拼写错误,因为字符串正确拼写,然后我们返回未找到特殊值NS,因此我们可以检查拼写结果或查看是否有这样的错误。
在这里插入图片描述

3.动画

1)基础按钮

每次点击会变化
在这里插入图片描述
CGFloat 是特定于iOS和macOS的数据类型,旨在提供跨不同iOS和macOS架构的可移植性。在不同的设备上,CGFloat 的大小会自动调整以适应特定的架构,从而简化开发,特别是在涉及图形和界面布局的情况下。

2)动画类型

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3)绑定

按钮与步进器绑定同一数据依次更改按钮尺寸
在这里插入图片描述
绑定更改检查目标之前,检查我们的视图状态,绑定更改后视图的状态
在这里插入图片描述
这些绑定动画有效的转为隐式动画,而不是在视图上设置动画并使用。

4)3d旋转

在这里插入图片描述

5)动画修改器

在这里插入图片描述
蓝色红色颜色切换
在这里插入图片描述
多个动画修改器,弹簧效果
在这里插入图片描述

6)拖动手势

将渐变卡拖动,释放阻力时会回到卡片中心
在这里插入图片描述

4.项目:大数据分析得到睡眠时间

1)一个项目:

1.让我们对应每个人,分别开始选择唤醒时间
swift提供我们处理日期的数据,封装年份,月份和日期,分钟和第二时区等等,但是我们不想考虑大部分,为此,swift的日期类型略有不同,这使我们可以读取或写入日期的特定部分而不是整个日期。
如果我们想要一个在那里代表今天上午8:00的日期

struct ContentView: View {
    @State private var wakeup = Date()
    var body: some View{
        var components = DateComponents()
        components.hour = 8
        components.minute = 0
        let date = Calendar.current.date(from: components) ?? Date()
        //由于日期验证的困难,即方法中的日期实际上返回了可选日期,所以最好用nil合并来表示如果失败返回当前日期
        return DatePicker("Please enter a date",selection: $wakeup,displayedComponents: .hourAndMinute)
            .labelsHidden()
        }
}

2.用户如何阅读他们想起床的时刻
日期选择器绑定到一个可以为我们提供大量信息的日期,
通过日期组件的工作方式,我们可以询问小时和分钟,交还给组件实例及所有可选值。即使我们知道它存在,,但我们仍然需要拆开可选选项或提供默认值

let components=Calendar.current.dateComponents([.hour,.minute], from: someDate)
let hour = components.hour ?? 0
let minute = components.minute ?? 0

3.我们如何格式化日期和时间
然后swift再次给我们一个特定的类型,输入这次谁为我们完成大部分工作的类型,称为日期格式化程序,字母可以通过多种方式将日期转化成字符串
例如,我们只想要从日期开始的时间,

let formatter = DateFormatter()
        formatter.timeStyle = .short
        let dateString = formatter.string(from: Date())

甚至可以使用日期格式以完全自定义的格式传递,但这与这个项目的任务是:日期很难,但是苹果为我们提供了一堆帮手,如果学会使用它,可以减少辛苦,学好了,将写更少的代码,也会写更好的代码

2)机器学习

机器学习,我们先训练模型,如何让模型进行预测训练,作为计算机即为查看我们所有数据的过程,找出我们拥有的使用值与大数据之间的关系,设置它可能需要很长时间,很容易需要几个小时,可能需要更长的预测时间,预测是在设备上完成的,我们向其提供了训练模型,他将使用以前的结果来估计。

让我们打开训练项目在这里插入图片描述
选择创建新文件,会看到很多模版,选择Tabular Regressor
在这里插入图片描述
创建完成后,首先加上一些训练数据,这是我们要研究的原始数据,
当某人想要唤醒他们在我们的情况下要研究四个值,他们想要多久睡眠,他们想每天喝多少咖啡,他们实际需要多久睡眠,导入数据
下一项工作是确定目标,这是我们希望计算机学习预测的值以及其中的功能,是我们希望计算机检测以预测目标的值
例如,如果我们选择某人认为需要多少睡眠以及多少睡眠他实际需要作为我们可以训练计算机进行预测的功能

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【课程特点】1、231节大容量课程:包含了SwiftUI的大部分知识点,详细讲解SwiftUI的方方面面;2、15个超级精彩的实例:包含美食、理财、健身、教育、电子商务等各行业的App实例;3、创新的教学模式:手把手教您SwiftUI用户界面开发技术,一看就懂,一学就会;4、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;5、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;6、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;7、齐全的学习资料:提供所有课程的源码,在Xcode 11 + iOS 13环境下测试通过; 更好的应用,更少的代码!SwiftUI是苹果主推的下一代用户界面搭建技术,具有声明式语法、实时生成界面预览等特性,可以为苹果手机、苹果平板、苹果电脑、苹果电视、苹果手表五个平台搭建统一的用户界面。SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计**同步。自动支持动态类型、暗黑模式、本地化和可访问性,意味着您的**行SwiftUI代码已经是您编写过的非常强大的UI代码了。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuan_cxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值