選擇學(xué)習(xí)IOS的UI控件俯萌,原因:
1.用的是Mac mini(屌絲女~將來(lái)有錢(qián)了入手Mac Pro)设褐,正好可以使用xcode倡缠。
2.xcode中有storyboard牵啦,這可比Android的開(kāi)發(fā)界面友善多了寇僧,所見(jiàn)即所得摊腋,控件拖拽即可(有點(diǎn)像Axure),適合沒(méi)有編程基礎(chǔ)的我嘁傀。
3.storyboard中提供了較多的控件歌豺,能滿(mǎn)足日常的使用。
4.swift語(yǔ)言出來(lái)之后心包,學(xué)習(xí)成本低了不好类咧。
OK,言歸正傳,開(kāi)始學(xué)習(xí)記錄痕惋。
table view知識(shí)要點(diǎn):
table view区宇,簡(jiǎn)單來(lái)說(shuō),就是表格~iPhone里的設(shè)置界面值戳,是一個(gè)典型的table view议谷。
1.
問(wèn)題:
控件庫(kù)中的table view 和 table view controller 有什么區(qū)別?
理解:
一開(kāi)始我確實(shí)分不清這兩個(gè)的區(qū)別堕虹,后來(lái)?yè)v鼓了一番卧晓,發(fā)現(xiàn)table view controller是一個(gè)整個(gè)界面,使用table view controller赴捞,意味著逼裆,這個(gè)頁(yè)面的所有內(nèi)容都要在table view(表格)中實(shí)現(xiàn)。而table view可以理解為一個(gè)控件赦政,可以和其他的控件放在同一個(gè)某某controller中胜宇。
控件庫(kù)中帶有controller結(jié)尾的控件,拖到storyboard中就是一個(gè)頁(yè)面恢着,兩個(gè)controller不能放在一個(gè)頁(yè)面下桐愉。不帶controller的控件,是可以在一個(gè)頁(yè)面里羅列使用的掰派。
2.
問(wèn)題:
data source與delegate的區(qū)別从诲?
理解:
UITableViewDataSource(data source),用于提供數(shù)據(jù)給table view.也就是表格有哪些有什么數(shù)據(jù)~
UITableViewDelegate(delegate)靡羡, 當(dāng)事件發(fā)生時(shí)盏求,或者當(dāng)table view需要更多的屬性時(shí),table view向delegate請(qǐng)求亿眠。
3.
筆記:
(1)UITableViewDataSource
如果指明遵循這個(gè)協(xié)議,以下兩個(gè)函數(shù)是必須要實(shí)現(xiàn)的:
1)numberOfRowsInSection?
//每個(gè)section需要加載多少行
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
}
2)cellForRowAtIndexPath
//返回UITableViewCell
UITableViewCell是section里的行(某一行或者所有行)磅废,行中的內(nèi)容變化纳像,需要在這個(gè)函數(shù)下實(shí)現(xiàn)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
}
另外還有3個(gè)可選的函數(shù),可以不實(shí)現(xiàn)可以實(shí)現(xiàn)
1)numberOfSectionsInTableView?
//這個(gè)table view中有多少個(gè)section
iphone設(shè)置界面中拯勉,有多個(gè)section竟趾,第一個(gè)section就是 通用 。如果沒(méi)有實(shí)現(xiàn)這個(gè)函數(shù)宫峦,那么就默認(rèn)這個(gè)table view中只有一個(gè)section岔帽。其實(shí)好多APP中的設(shè)置界面只有一個(gè)section的。
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
}?
2)titleForHeaderInSection
//section的頭標(biāo)題名稱(chēng)
有點(diǎn)像頁(yè)眉导绷。section也是有個(gè)頭部的犀勒,使用這個(gè)效果的APP不多。這個(gè)頭部的字體是固定的風(fēng)格,不能修改贾费,如果想自定義字體钦购,不用使用這個(gè)函數(shù)。用其他方式代替(例如使用UILable)
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? ?{
}
3)titleForFooterInSection
//section的尾部標(biāo)題名稱(chēng)
有點(diǎn)像頁(yè)腳褂萧。同上押桃。
optional func tableView(tableView: UITableView, titleForFooterInSection section: Int) -> String?
(2)UITableViewDelegate
函數(shù)較多,大約有這么幾類(lèi):
1)顯示 tableview的內(nèi)容的過(guò)程中: 顯示前导犹、顯示中唱凯、顯示后
2)頁(yè)眉頁(yè)腳(header & footer)以及每個(gè)單元格(行)的高度
3)根據(jù)內(nèi)容快速估算頁(yè)眉頁(yè)腳(header & footer)以及每個(gè)單元格(行)的高度,使用此方法有時(shí)候會(huì)和上方的2)有沖突
4)頁(yè)眉頁(yè)腳(header & footer)的標(biāo)題內(nèi)容
5)類(lèi)似大于號(hào)>谎痢,APP的設(shè)置界面常常出現(xiàn)
6)單元格被選中或者不再被選中
7)選中是否高亮
8)編輯單元格:刪除+插入 delete+insert
9)移動(dòng)單元格
10)復(fù)制粘貼
11)Indentation(這個(gè)是干嘛的磕昼?等級(jí)嗎?)