新書推薦:
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
44.6
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:HK$
134.2
《
养育女孩 : 官方升级版
》
售價:HK$
50.4
《
跨界:蒂利希思想研究
》
售價:HK$
109.8
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
44.7
《
大模型启示录
》
售價:HK$
112.0
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
201.6
《
养育男孩:官方升级版
》
售價:HK$
50.4
|
編輯推薦: |
与网站上传播的各种版本的基础教程不同,《Swift语言实战晋级》将深入挖掘Swift语言的使用规律。省略过多讲述基础语法的篇幅,从而把重点放在实践上,通过豆瓣电台、跑酷熊猫、围住神经猫多个案例来与大家一同研究如何用Swift制作有趣的应用和游戏。
在51CTO学院、SwiftV课堂发布的相关教学视频可配合使用。
《Swift语言实战晋级》中使用的图片素材、代码包均在线共享。
51CTO传媒总裁熊平、51CTO学院高级运营经理曹亚莉、SwiftV课堂创始人周鑫、泰课在线创始人杜增强、天地君道培训创始人黑羽鼎力推荐。
书内附赠51CTO学院100金币的学习卡、SwiftV课堂90元代金券。
|
內容簡介: |
本书主要通过大量实例来讲解Swift语言在软件开发中的实际应用方法。本书共9章,前2章快速讲述Swift的基础内容,即开发环境的搭建和Swift的基础语法。由于本书是晋级篇,故不再大篇幅讲解基础内容。第3~6章以UIKit控件为主要内容,通过拖拖看小游戏、豆瓣电台、任务提醒软件几个案例来充分巩固UIKit从基础到高级的知识体系,其中还会涉及网络数据读取、图片缓存等技术。第7~9章我们共同聊一聊SpriteKit的应用,以围住神经猫、跑酷熊猫两个实例来讲述2D游戏的开发技术。本书适合对Swift语言的基础内容有一定了解的读者提升实战技能。
|
關於作者: |
老镇,本名曾伟,勤劳码农一名,擅长iOS游戏与应用开发。拥有十余年研发经验,是国内最早一批Swift研究者。51CTO学院、SwiftV课堂热门讲师。Swift系列视频教程《跑酷熊猫》、《豆瓣电台》和《Swift动画编程指南》的原作者。
|
目錄:
|
第1章 Swift开发环境的搭建 1
1.1 下载Xcode 1
1.2 关于Mac操作系统 3
第2章 Swift语法速读 4
2.1 基础知识 4
2.1.1 变量与常量 4
2.1.2 注释 5
2.1.3 整数 5
2.1.4 浮点数 5
2.1.5 类型推测 5
2.1.6 数值型类型转换 5
2.1.7 布尔值 6
2.1.8 元组 6
2.1.9 可选类型 7
2.1.10 断言 8
2.2 基本运算符 9
2.2.1 赋值运算符 9
2.2.2 数值运算 9
2.2.3 自增(自减)运算 9
2.2.4 复合赋值 9
2.2.5 比较运算 10
2.2.6 三元运算符号 10
2.2.7 区间 10
2.2.8 逻辑运算 10
2.2.9 括号优先级 11
2.3 字符串和字符 11
2.3.1 字符串 11
2.3.2 字符 11
2.4 集合类型 13
2.4.1 数组 13
2.4.2 字典 14
2.5 流程控制 16
2.5.1 for循环 16
2.5.2 while循环 17
2.5.3 条件语句 18
2.5.4 控制转移语句 21
2.6 函数 21
2.7 闭包 24
2.8 枚举 24
2.9 类和结构体 25
2.10 属性 26
2.11 方法 29
2.12 下标 30
2.13 继承 32
2.14 构造过程 34
2.15 析构过程 36
2.16 自动引用计数 36
2.17 可选链 37
2.18 类型转换 38
2.19 类型嵌套 40
2.20 扩展 41
2.21 协议 43
2.22 泛型 45
2.23 访问控制 45
2.24 高级运算符 46
第3章 基础UIKit控件概览 49
3.1 创建工程及基本操作 49
3.1.1 创建Single View Application工程 49
3.1.2 基本操作 51
3.2 Button(按钮) 57
3.2.1 Button控件的基本属性 57
3.2.2 Button实例:各类按钮 59
3.3 Label 60
3.3.1 Label控件的基本属性 61
3.3.2 Label实例:各类文本标签 62
3.4 TextField 63
3.4.1 文本框控件的属性 63
3.4.2 实例:登录界面 64
3.4.3 实例:加法计算器 66
3.5 TextView 68
3.5.1 多行文本框的属性 68
3.5.2 实例:自定义选择内容后的菜单 69
3.6 Switch 70
3.6.1 文本框控件的属性 70
3.6.2 Switch控制TextView的可编辑属性 71
3.7 SegmentedControl 72
3.7.1 Segmented Control的属性 72
3.7.2 Segmented Control实例 73
3.8 ImageView 75
3.8.1 图像控件的基本属性 75
3.8.2 图像控件实例 75
3.9 ProgressView 78
3.9.1 进度条控件的属性 78
3.9.2 进度条控件的实例 78
3.10 ActivityIndicator View 79
3.10.1 环形进度条的基本属性 80
3.10.2 环形进度条实例 80
3.11 Slider 82
3.11.1 拖动条的基本属性 82
3.11.2 实例:拖动条控制图片透明度 82
3.12 AlertView 84
3.12.1 警告框的基本属性 84
3.12.2 实例:各式各样的警告框 84
3.13 ActionSheet 88
3.13.1 底部警告框的基本属性 88
3.13.2 底部警告框的实例 88
3.14 DatePicker 89
3.14.1 日期选择器的基本属性 89
3.14.2 日期选择器的实例 90
3.15 PickerView 91
3.15.1 选择器的一些属性 91
3.15.2 选择器的实例 91
3.16 Stepper 96
3.16.1 步进器器的一些属性 96
3.16.2 实例:属性加点器 96
3.17 WebView 98
3.17.1 网页视图控件的一些属性 98
3.17.2 实例:迷你网页浏览器 99
3.18 Toolbar与Bar Button Item 100
3.18.1 工具条的一些属性 100
3.18.2 Bar Button Item的一些属性 101
3.18.3 工具条的实例 102
3.19 TableView 103
3.19.1 TableView的一些属性 103
3.19.2 TableView的一个简单例子 104
3.20 SearchBar 109
3.20.1 搜索条的简单属性 109
3.20.2 搜索条的简单例子 110
3.20.3 Search Bar and Search Display Controller例子 115
3.21 NavigationBar 117
3.21.1 导航条的实例 117
3.22 NavigationController 119
3.22.1 导航控制器的属性 119
3.22.2 导航控制器实例 119
3.23 TabBar 125
3.23.1 TabBar的一些属性 125
3.23.2 TabBarItem的一些属性 126
3.23.3 TabBar实例 127
3.24 TabBar Controller 127
3.24.1 TabBar Controller实例 127
3.25 Page View Control 129
3.25.1 Page View Controller属性 129
3.25.2 Page View Controller实例 129
第4章 拖拖看小游戏 133
4.1 构建主界面 133
4.2 基本变量和更新函数 137
4.3 获取滑块的数值并与目标值进行比较 138
4.4 重头开始玩游戏 142
4.5 新增得分规则界面实现跳转 143
4.6 自定义界面 146
第5章 豆瓣电台 154
5.1 动手之前先做一些准备 154
5.2 实现界面 158
5.3 设置TableView 162
5.4 异步获取网络数据 168
5.5 缓存缩略图 176
5.6 改变封面图 178
5.7 播放歌曲 178
5.8 选择歌曲频道 180
5.9 Cell的显示动画 184
5.10 播放时间与播放进度 186
5.11 简单的手势控制播放与暂停 188
5.12 最后的细节 199
第6章 任务提醒软件 201
6.1 软件预览 201
6.2 创建项目 202
6.3 设计Cell 207
6.4 动态展示Cell 209
6.5 简述MVC 211
6.6 Model初体验 211
6.7 导航控制器 214
6.8 界面跳转 219
6.9 处理新界面的一些细节 231
6.10 编辑任务类别 236
6.11 本地保存数据 242
6.12 加载本地数据 245
6.13 重新规划界面 251
6.14 任务类型的Model 258
6.15 动态设置任务列表界面的Title 262
6.16 增加和编辑任务类型 263
6.17 任务类型的本地化保存 269
6.18 数据保护措施 280
6.19 重构Model 282
6.20 数据本地化NSUserDefaults 290
6.21 计算还有多少个需要提醒的任务 295
6.22 任务类型列表排序 297
6.23 添加任务类型的图标 298
6.24 对应用做一些美化 308
6.25 任务截止时间 310
6.26 添加日期选择器 316
6.27 本地消息通知 327
第7章 SpriteKit 简介 335
7.1 简单聊一聊 335
7.1.1 聊一聊SKNode 336
7.1.2 聊一聊SKScene 336
7.1.3 聊一聊纹理 336
7.1.4 聊一聊动作(Action) 336
7.1.5 聊一聊物理系统 336
7.2 如何学习SpriteKit 337
7.2.1 创建SpriteKit项目 337
7.2.2 创建第一个场景 339
7.2.3 往场景中添加内容 342
7.2.4 让文本动起来 343
7.2.5 场景的转换 343
7.2.6 使用SKSpriteNode 344
7.2.7 添加灯光 345
7.2.8 物理系统 346
第8章 游戏实战-围住神经猫 349
8.1 游戏预览 349
8.2 创建游戏项目 351
8.3 创建背景 353
8.4 创建圆点类 353
8.5 在场景中生成圆点 356
8.6 神经猫的类 364
8.7 寻路 366
8.8 留个小作业 379
第9章 游戏实战-跑酷熊猫 380
9.1 创建游戏工程以及导入素材 381
9.2 创建熊猫类 384
9.3 显示一个动态的熊猫 387
9.4 熊猫的跳和打滚 389
9.5 踩踏平台是怎么炼成的 391
9.6 创建平台类以及平台工厂类 393
9.7 平台的移动 397
9.8 产生源源不断的移动平台 397
9.9 移除场景之外的平台 400
9.10 视差滚动背景 401
9.11 欢迎进入物理世界 408
9.12 与平台的碰撞 411
9.13 二段跳的实现 412
9.14 熊猫的打滚动作 413
9.15 起跳特效 415
9.16 苹果以及苹果工厂类 420
9.17 计分板 425
9.18 下沉和升降的平台 427
9.19 加速度 433
9.20 重置游戏 434
9.21 声音类 436
9.22 修复小bug 446
后记 448
|
內容試閱:
|
4.2 基本变量和更新函数
当我们完成了界面的设置,就要思考一下代码方面怎么编写。我们从主界面上看到我们需要一个目标数字,我们用targetValue来储存它。还需要一个变量用来记录滑块拖动的位置,用来和targetValue作比较,这个变量我们命名为currentValue。从主界面上,我们看到还需要两个变量用来存储总分数和总回合数,我们可以将它们命名为score和round。
目标数字
var targetValue :Int = 0
拖到的数字
var currentValue :Int = 0
总分数
var score :Int = 0
总回合数
var round = 0
目标数字每个回合随机生成,范围是1至100的整数。
最后我们需要写一个函数用来生成目标数字和更新界面上的targetLabel,scoreLabel,roundLabel的数字。
界面显示更新函数
func updateLabels{
目标值
targetValue = Int1 + arc4random%100
给界面上的目标label赋值
targetLabel!.text = StringtargetValue
给总分label赋值
scoreLabel!.text = Stringself.score
回合数+1
round++
给总回合数label赋值
roundLabel!.text = Stringself.round
重置滑块的值
slider!.value = 50
}
arc4random这个全局函数会生成9位数的随机整数,对它100取模(%)运算就会得到0至99的之间的随机数,加上1就得到了1至100的随机数。
这时候我们可以来运行一下程序看看效果,因为程序一启动就开始要有个目标值,所以我们的updateLabels函数在viewDidLoad函数内就要运行一次,viewDidLoad函数就是在界面加载完毕的时候运行的函数,代码如下:
override func viewDidLoad {
super.viewDidLoad
首次运行时生成目标值并更新labels
updateLabels;
}
|
|