【從零開始用Swift開發一個iOS應用(仿微博)】開篇-1. demo上手體驗


最近在學iOS開發,本系列會針對iOS從前到后的開發進行全面講解,小到開發工具使用,大到應用市場上線。

本篇思維導圖

需求:

1.顯示一個橘黃色矩形
2.矩形上面一個按鈕可以點擊,並有響應事件
3.界面中心顯示一張圖片

系統版本:

Mac OS 版本:10.15.5
Xcode版本:11.5

一、創建demo項目

1.1 選擇創建一個Xcode Project

mark

1.2 選擇Single View App

mark

二、代碼實現

2.1 程序入口說明

Application/AppDelegate.swift文件中的@UIApplication注解,表示這個Class類是程序的入口
mark

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

如下圖所示,我在注釋中添加了MARKTODOFIXME標簽前綴,這些特殊標記的錨點菜單將會顯示在導航欄上,點擊菜單即可跳轉到對應注釋的地方,非常方便。

注釋標簽

mark
關注后有福利:Java面試小程序、111本架構師資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM