發表文章

目前顯示的是有「swift」標籤的文章

Swift - Create UICollectionViewController without Storyboard

圖片
After we create a new project, first thing we need to do is to delete Main.storyboard. Next Step, go to project general setting -> Deployment Info, delete "Main" on Main Interface Good, and then we go to ViewController.swift, change Subclass to UICollectionViewController, also change collectionview's background to red color to specify that we are using UICollectionViewController. import UIKit class ViewController: UICollectionViewController {     override func viewDidLoad() {         super . viewDidLoad ()         // Do any additional setup after loading the view.         collectionView . backgroundColor = UIColor . red     } } Then, go to AppDelegate.swift, and now we have to manually build what storyboard do for us. In func application( _ application: UIApplication , didFinishLaunchingWithOptions launchOptions: [ UIApplication . LaunchOption...

Swift - TableViewCell deletion programmatically

圖片
前言: 大學畢業了,在前往研究所之路的過渡期,雖然心裡想著這是我最後一個暑假,應該要好好玩、大力玩,但是心裡總有一點聲音在警惕自己不要虛度這年輕寶貴的時刻,所以老樣子,承襲每年放寒暑假的傳統,self-learning iOS is still my main task to do ! 其實以往都有在持續(或是說斷斷續續)跟Swift培養感情,但是礙於自己蠻懶的,一方面學的比較沒那麼積極、一方面部落格也就沒什麼在寫,所以趁現在剛學到一個新概念,趕緊花時間記錄下來,至於今天的主題也寫在標題上了,要來紀錄如何用手刻(programmatically)讓UITableViewCell從UITableView進行刪除的動作。 這也是我第一次用刻UI的方式做整個小專案的練習,以前Storyboard用久了,順便利用這個暑假學習純code來開發一個app。 而今天的教學資源來自 Let's build that app 這個頻道的 這個影片 中的一部份實作內容,我follow這個頻道也算蠻久了,無聊就會找這個講師的影片配飯看、照三餐看(誤),我只能說這個講師非常厲害,好啦,廢話不多說,我們趕快開始吧! 正文: 首先,請到我的Github下載原始專案: https://github.com/stevenlin1015/UITableViewCell---original-project 打開之後,修改一下Identity,並執行: 可以看到已經有3列的cell,且每個cell除了有顯示label name (item 1, item 2, item 3),還各自有一個delete按鈕,我們要做的就是在按下delete之後,會將對應列的cell刪除。 沒有問題後,我們要建立一個刪除UITableViewCell的動作,所以我們寫一個函式在MyTableViewController的class內: 至於要在MyCell執行deleteCell()要怎麼做?很簡單,只要在MyCell給定一個MyTableViewController的變數,先將其設為Optional: 修改MyCell裡的handleAction(): 將print("tapped")刪...

iOS App實作 - 垃圾車來了

圖片
前言: 這是一個自己想題目、自己練習實作的簡易App。 這學期由於修了資工系的iOS程式設計課程,老師要大家期末想一個專題並發表。 之前其實摸了Xcode一段時間,偶而看一看網路上的教學,並且跟著實作,做出來就覺得酷斃了! 不過隨著App建構的複雜性越來越高,遇到的問題就排山倒海的壓在我身上。 一個很有感的例子是ViewController與 ViewController之間的傳值動作,以前都是在一個ViewController上弄簡單的功能,這幾個月開始照著參考書上的教學(iOS 10 App程式設計實力超進化實戰攻略那本,買很久了  前陣子終於全部看完了),讓我開始注意到這個功能的運作。其實說實在好像也不難,但沒做習慣好像隔一陣子要再做同樣的東西又會忘記(是我老了嗎?? ) 現在則是要從頭刻一個App,希望接下來到期末之前能如期完成。 概念與構想: 原本是想說做一個仿Instagram的App,但是做了一半感覺好像也沒什麼特別的地方。 後來又想到做一個點餐App(類似海底撈那種),可是前幾天畫了原型圖,搞了很久,覺得對使用者介面的排列好像不符合邏輯,所以又放棄,可能以後有時間再做。 今天終於是讓我想到了一個比點餐系統簡單一點、又可以學到新的API,那就是倒垃圾App。 說白了就是看看現在垃圾車到哪裡了,藉以告知使用者大概要下樓倒垃圾了。 (你問我  阿不就聽垃圾車的聲音就好,做這個App幹嘛?   阿我就單純做一個技術試驗嘛...,現在做的功能可能比較陽春,但之後加上比較完整的功能,實用性也許會更高一點,不要這麼快就打擊我...... ) 進度:     0516 -  專案初始化,並配置基礎介面,包含Auto Layout的設定。 主頁側邊欄佈局設定。     0517 -  完成主頁及詳細頁面的TableView實作和遞值。 專案依循MVC重整。 MapKit實作(用於詳細頁面)。     0527 -  依據手機GPS及fetch的資料,計算使用者與垃圾車的距離,顯示於UITableViewCell上。 bug修復:主頁面cell選取後不會一直呈現反灰的狀態、地址能完整呈現給...

在Xcode 8使用Git版本控制系統

圖片
之前在iTunes U看到Stanford University 的CS193p課程,最近想從頭跟著Paul Hegarty老師的腳步修完這門課,但是對我自己不要有進度壓力,所以可能接下來會花好長一段時間在這個課程上(但還是預計過年前能修完這門課 xDD) 在看第一堂課,老師要請我們做一個簡易的計算機,但是沒有教我們做版控管理,我想說之前有做過幾次,不過好一段時間沒碰又生疏了,乾脆現在來整理一下,順便把課程檔案上傳到Github上放著。 以下就是參考其他大大的做法,再幫自己寫一份在這裡做個筆記這樣 (注意,這個是在建立專案時同時做一份Git Repository,如果要在現有的專案加上Git Repository,可能之後再寫,如果我記得的話xD) Step1  建立專案: 由於我是從CS193p課程開始的,我就以課程檔案(Calculator)做示範,如果有自己的專案,可以用自己的名字,完成後按Next: 初學者通常不需要太複雜的操作,所以方框內預設可以都不用勾 在選擇完要儲存的資料夾後,記得把方框部分(Create Git Repository on ...)做勾選 接著打開Finder 進到剛才建立專案的資料夾,點進去,會看到兩個子檔案(Calculator、Calculator.xcodeproj) 因為剛才已經建立Git Repository了,下一步則是要把這個Git顯示出來。 由於預設的資料夾是隱藏的,我們可以用快捷鍵Command + Shift + . 把這個資料夾叫出來,如下所示: 所有Git的資料都會放在這個資料夾下 回到Xcode,我們從選單欄依序選擇Source Control -> History,可以看到在建立專案完成,Xcode同時會保存第一份Commit,下面截圖上寫Initial Commit就是了。 Step2  設定與Github的連結: 登入自己的Github帳號(沒有的話請 註冊 一個,免費的),新增一個repository。 接著填入相關資料跟設定,我將這個示範命名成Calculator_practice: 按下Create repository後,我們要在下一頁複製它給你...