最近在學iOS開發,本系列會針對iOS從前到后的開發進行全面講解,小到開發工具使用,大到應用市場上線。
需求:
1.顯示一個橘黃色矩形
2.矩形上面一個按鈕可以點擊,並有響應事件
3.界面中心顯示一張圖片
系統版本:
Mac OS 版本:10.15.5
Xcode版本:11.5
一、創建demo項目
1.1 選擇創建一個Xcode Project
1.2 選擇Single View App
二、代碼實現
2.1 程序入口說明
Application/AppDelegate.swift文件中的@UIApplication注解,表示這個Class類是程序的入口
2.2 代碼結構說明
所有方法放到一個{}中,並有縮進。
和Java編碼格式非常相似。
2.3 功能實現
2.3.1 創建一個視圖,添加一個黃色矩形
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// 1.創建一個視圖
let v = UIView(frame: CGRect(x:0, y:0, width: 100, height: 100))
// 2.設置背景顏色
v.backgroundColor = UIColor.yellow
// 3.添加到當前視圖
view.addSubview(v)
}
}
效果如下所示:一個黃色矩形在左上角
2.3.2 添加一個按鈕,並添加按鈕點擊事件的監聽方法
// 2.創建一個按鈕
let btn = UIButton(type: .contactAdd)
// 2.1 添加到當前視圖
v.addSubview(btn)
// 2.2 添加點擊事件
btn.addTarget(self, action: #selector(btnClick), for: .touchUpInside)
// 2.3 btnClick事件方法輸出日志
效果如下所示,一個按鈕在左上角,點擊按鈕將會輸出日志
2.3.3 添加一個圖片
// 3.1 添加一個圖片
let iv = UIImageView(image: #imageLiteral(resourceName: "2.jpeg"))
// 3.2 添加到視圖
iv.center = view.center
圖片的資源路徑可以通過代碼添加,也可以通過工具添加
效果如下所示,圖片會顯示在屏幕中間。
三、上述示例swift與object-c的語法對比
3.1 創建視圖類比
- Swift: UIView(XXX:)
- OC: [[UIView alloc] initWithXXX:]
類名() == alloc / init 等價
3.2 類方法類比
Swift: UIColor.yellow
OC: [UIColor yellow]
3.3 訪問當前對象的屬性類比
-
建議:都不使用
self.
。當編譯器提示的時候,再添加,會對語境有更好的機會; -
原因:閉包(類似於 OC block)需要使用self。
3.4 不需要;
除非多行代碼語句寫在同一行中。
3.5 枚舉類型 type對比
Swift:`type: .contactAdd`
OC: UIButtonType.ContactAdd
3.6 監聽方法對比
Swift: #selector,如果帶參數,不需要使用`:`
OC: @selector
3.7 調試對比
- Swift: print(xxx) 效率高,log中不包含時間,用#function來打印當前執行的方法
- OC: NSLog,用__FUNCTION__ 來打印當前執行的方法
四、注釋的妙用
當我們想標注某段代碼是需要refine的,我們可以添加注釋標簽:TODO
。
如下圖所示,我在注釋中添加了MARK
、TODO
、FIXME
標簽前綴,這些特殊標記的錨點菜單將會顯示在導航欄上,點擊菜單即可跳轉到對應注釋的地方,非常方便。
關注后有福利:Java面試小程序、111本架構師資料