Swift3.0学习笔记-第一个app
来源:互联网 发布:粤贵银交易软件 编辑:程序博客网 时间:2024/05/16 08:52
https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html#//apple_ref/doc/uid/TP40015214-CH2-SW1
按照苹果官方文档的介绍一句句看下来了, 也实际用Xcode逐句编码练习过了, 先赞一下作者写的非常详细, 但吐槽一下FoodTracker不是用Swift3.0写的,打开示例代码时要转换为3.0。 说说感受, Swift3.0画界面比Android要麻烦, 难点在于布局和代码要用Ctrl+鼠标拖动的方式建立关联(包括点击事件Action、控件引用Outlet)。 对于初学者, 即使给你一个Swift项目代码, 让你照搬着写也不一定能弄出相同功能;而Android app工程更容易理解和抄,门槛较低。
苹果的FoodTracker示例代码在打开相册时崩溃, 暂时不知道如何解决。
Swift按照MVC模式设计UI框架。
Swift布局文件: 文件名后缀是storyboard, 功能类似于OC的xib, 实际上也是xml;一个storyboard文件可以包含多个界面,之间用箭头表示显示层级关系, UIViewController之间使用segue交互数据。
UIView:控件,都继承于UIView;
UIViewController: 都继承于UIView Controller; 有点像Android的Activity/Fragment。
stack:storyboard里stack的作用将一些控件组合到一起, 类似于Android的ViewGroup。
constraint:storyboard里的constraint作用是设置控件的位置, 类似于Android的layout_margin。
控件和Controller之间通过outlet和action关联, 按照Ctrl并拖动鼠标从storyboard控件到controller代码里, outlet是控件的引用,类似于Android的findViewById;action是点击事件,类似于Android的OnClickListener。
下面是关联控件到代码的demo, 注意前缀@IBOutlet是Xcode自动生成的,表示当前参数指向storyboard的控件, weak关键字表示弱引用,当iOS资源不足时可能会释放该控件。
@IBOutlet weak var nameTextField: UITextField! //类似于Android的TextView,并执行了findViewById @IBOutlet weak var mealNameLabel: UILabel! @IBOutlet weak var photoImageView: UIImageView!
@IBAction func setDefaultLabelText(_ sender: UIButton) { mealNameLabel.text = "Default Text" }
上图是UIViewController的生命周期, 类似于Android的Activity, 在Swift中每个界面都是用UIViewController的子类控制的。
viewDidLoad()
— 执行的第一个函数(类似于Android Activit的onCreate,区别是viewDidLoad可以执行多次), 当View对应的storyboard文件被加载并作为视图根节点显示时调用。viewWillAppear()
— 顾名思义,View显示出来前肯定要执行的函数,类似于Swift观察属性变化的willSet。英语语法里的将来时viewDidAppear()
- view显示完成后执行的函数, 类似于Swift观察属性变化的didSet, 英语语法的完成时。
在Android的界面里经常使用列表控件ListView或者RecyclerView, Swift使用UITableViewController作为列表控件管理类, 注意在storyboard文件里时UITableViewController,而不是UITableView。
我们在考察一个Android工程师功底时,经常问到ListView的优化;同理,要学好Swift必须搞明白UITablerViewController的所有细节, 还是看一遍API并执行看看效果吧!
storyboard里的标题栏是用Xcode的Editor菜单里的Navigation Controller选项添加的, 而不是用右下角的Object library拖出来的。
Swift3.0 APP官方开发资料较少,毕竟Swift3.0刚发布2个月, 国内的相关视频都是培训班的。 要学好Swift,建议看完所有的苹果官方WWDC视频和介绍。
- Swift3.0学习笔记-第一个app
- Swift3.0学习笔记-Functions
- Swift3.0学习笔记-Closures
- Swift3.0学习笔记-Initialization
- Swift3.0学习笔记-DeInitialization
- Swift3.0学习笔记-Extensions
- Swift3.0学习笔记-Protocols
- Swift3.0学习笔记-Generics
- Swift3.0 URLSession学习笔记
- Swift3.0 URLSession学习笔记
- Swift3.0学习笔记-Extensions
- 1.1_Android Training 学习笔记_建立第一个App
- 第一个学习笔记
- 第一个学习笔记
- Swift3.0学习笔记(一)
- Swift3.0学习笔记----遍历字符串
- Swift3.0学习笔记-String and Characters
- Swift3.0学习笔记-Collection Types
- 【C#】43. TPL基础——Task初步
- 串口过滤完整代码
- 软件开发进度表
- 编程练习题
- Android自动化测试 -- Monkey
- Swift3.0学习笔记-第一个app
- 12.6英语专场
- javaScript(一)_历史
- PS之模式其他补充,及通道实例
- 多行文本溢出显示省略号(...)的方法
- cpio compress and extract
- Qt5.7不能加载MySql驱动问题.(需要重新编译驱动)
- 自己写的一个项目自动更新的Linux脚本
- Android studio连接不上创建好的模拟器