選擇學(xué)習(xí)IOS的UI控件,原因:
1.用的是Mac mini(屌絲女~將來有錢了入手Mac Pro),正好可以使用xcode。
2.xcode中有storyboard,這可比Android的開發(fā)界面友善多了,所見即所得,控件拖拽即可(有點像Axure),適合沒有編程基礎(chǔ)的我。
3.storyboard中提供了較多的控件,能滿足日常的使用。
4.swift語言出來之后,學(xué)習(xí)成本低了不好。
OK,言歸正傳,開始學(xué)習(xí)記錄。
table view知識要點:
table view,簡單來說,就是表格~iPhone里的設(shè)置界面,是一個典型的table view。
1.
問題:
控件庫中的table view 和 table view controller 有什么區(qū)別?
理解:
一開始我確實分不清這兩個的區(qū)別,后來搗鼓了一番,發(fā)現(xiàn)table view controller是一個整個界面,使用table view controller,意味著,這個頁面的所有內(nèi)容都要在table view(表格)中實現(xiàn)。而table view可以理解為一個控件,可以和其他的控件放在同一個某某controller中。
控件庫中帶有controller結(jié)尾的控件,拖到storyboard中就是一個頁面,兩個controller不能放在一個頁面下。不帶controller的控件,是可以在一個頁面里羅列使用的。
2.
問題:
data source與delegate的區(qū)別?
理解:
UITableViewDataSource(data source),用于提供數(shù)據(jù)給table view.也就是表格有哪些有什么數(shù)據(jù)~
UITableViewDelegate(delegate), 當(dāng)事件發(fā)生時,或者當(dāng)table view需要更多的屬性時,table view向delegate請求。
3.
筆記:
(1)UITableViewDataSource
如果指明遵循這個協(xié)議,以下兩個函數(shù)是必須要實現(xiàn)的:
1)numberOfRowsInSection?
//每個section需要加載多少行
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
}
2)cellForRowAtIndexPath
//返回UITableViewCell
UITableViewCell是section里的行(某一行或者所有行),行中的內(nèi)容變化,需要在這個函數(shù)下實現(xiàn)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
}
另外還有3個可選的函數(shù),可以不實現(xiàn)可以實現(xiàn)
1)numberOfSectionsInTableView?
//這個table view中有多少個section
iphone設(shè)置界面中,有多個section,第一個section就是 通用 。如果沒有實現(xiàn)這個函數(shù),那么就默認(rèn)這個table view中只有一個section。其實好多APP中的設(shè)置界面只有一個section的。
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
}?
2)titleForHeaderInSection
//section的頭標(biāo)題名稱
有點像頁眉。section也是有個頭部的,使用這個效果的APP不多。這個頭部的字體是固定的風(fēng)格,不能修改,如果想自定義字體,不用使用這個函數(shù)。用其他方式代替(例如使用UILable)
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? ?{
}
3)titleForFooterInSection
//section的尾部標(biāo)題名稱
有點像頁腳。同上。
optional func tableView(tableView: UITableView, titleForFooterInSection section: Int) -> String?
(2)UITableViewDelegate
函數(shù)較多,大約有這么幾類:
1)顯示 tableview的內(nèi)容的過程中: 顯示前、顯示中、顯示后
2)頁眉頁腳(header & footer)以及每個單元格(行)的高度
3)根據(jù)內(nèi)容快速估算頁眉頁腳(header & footer)以及每個單元格(行)的高度,使用此方法有時候會和上方的2)有沖突
4)頁眉頁腳(header & footer)的標(biāo)題內(nèi)容
5)類似大于號>,APP的設(shè)置界面常常出現(xiàn)
6)單元格被選中或者不再被選中
7)選中是否高亮
8)編輯單元格:刪除+插入 delete+insert
9)移動單元格
10)復(fù)制粘貼
11)Indentation(這個是干嘛的?等級嗎?)