IOS UI控件學(xué)習(xí)——Table View 或 Table View Controller

選擇學(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(這個是干嘛的?等級嗎?)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容