50天iOS挑戰(Swift) - 第1天:秒錶計時器

50天iOS挑戰(Swift) - 第1天:秒錶計時器

50天,每天一個Swift語言的iOS練手項目,覆蓋iOS開發的主要知識。貴在堅持,重在思考


文章列表:http://blog.csdn.net/b735098742/article/category/6978601
Github項目:https://github.com/Minecodecraft/50DaysOfSwift


簡介

本項目爲仿照系統樣式的計時器
主要知識點: Timer、Storyboard、StatuBar

Showcase

過程

1、 思路整理
該項目是簡單的Timer使用,爲了增加難度,特意只設置兩個按鈕,分別負責(記錄、復位)和(開始、停止、繼續) 多個操作,鍛鍊邏輯思維能力。
主要思想就是:對於左按鈕,在未開始時復位按鈕爲不可用狀態,開始時爲記錄按鈕,暫停時爲復位狀態,而若繼續計時,則恢復記錄狀態。對於右按鈕,在左按鈕復位時變爲開始狀態,並清空記錄的數據,否則爲繼續狀態。上方顯示時間的label也隨此邏輯變化。

2、 Timer的使用
Timer的使用與NSTimer一樣,使用self.timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true) 創建每毫秒執行一次的Timer即可,停止時self.timer.invalidate() 即可。
注意:在之前使用Timer時遇到了沒有開啓計時器的問題,查閱了很久,發現忘記使用scheduledTimer() 函數,在創建時要注意這點。

3、 Storyboard使用
Storyboard來輔助界面設計是很方便的了。設置好控件之後,直接拖入代碼中創建IBOutlet、IBAction即可。
在這裏順便說一下初學時遇到的空指針問題,如果只在代碼中刪除了IBOutlet或者IBAction,沒有在Storyboard的控件中刪除,將會在程序啓動時crash,如果遇到在Appdelegate出Thread的情況,可以檢查一下是否是此問題。曾經因爲這個問題調了一晚上,於是對空指針記憶猶新(Java選手:emmmmmmm…)

4、 狀態欄的設置
由於使用了深色背景,會導致深色狀態欄被底色覆蓋。在此修改一下狀態欄主題。
iOS的狀態欄提供了深色和淺色主題。需要現在plist中設置屬性然後在代碼中修改。
步驟1:在plist.Info中添加View controller-based status bar appearance 屬性爲NO
plist
步驟2:在代碼中設置
UIApplication.shared.statusBarStyle = .lightContent

具體請查看項目源代碼

發佈了56 篇原創文章 · 獲贊 16 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章