iOS-基礎(chǔ)控件--UITableView(1:基本知識(shí))

**雨中黃葉樹,燈下白頭人!**<草苗龜>


  • UITableView繼承于UIScrollView,可以滾動(dòng)
  • UITableView的每一條數(shù)據(jù)對(duì)應(yīng)的單元格叫做cell,是UITableView的一個(gè)對(duì)象,繼承于UIView.
  • UITableView可以分區(qū)顯示,每一個(gè)分區(qū)稱為section 每一行稱為row,編號(hào)都是從0開始.
  • 系統(tǒng)提供一個(gè)專門的類來整合section和row,叫做 NSIndexPath.


代碼展示:

// 創(chuàng)建

UITableView *tableview = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];
[self.view addSubview:tableview];

// 每一行高

tableview.rowHeight = 50.0;

// 分割線顏色

tableview.separatorColor = [UIColor redColor];

// 分割線樣式

tableview.separatorStyle = 1;

// 頭部視圖

UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
headView.backgroundColor = [UIColor yellowColor];
tableview.tableHeaderView = headView;

// 底部視圖

UIView *footView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
footView.backgroundColor = [UIColor greenColor];
tableview.tableFooterView = footView;

#pragma mark ----cell的重用機(jī)制

  1. 當(dāng) 個(gè)cell 被滑出屏幕,這個(gè)ce 會(huì)被系統(tǒng)放到相應(yīng)的重 池中。
    2.當(dāng) tableview 需要顯 個(gè)cell ,會(huì)先去重 池中嘗試獲取 個(gè)cell沉删。
    3.如果重 池沒有ce ,就會(huì)創(chuàng)建 個(gè)cell 幔翰。
    4.取得ce 之后會(huì)重新賦值進(jìn) 使 。

// 第二種方法 :
// 第一步 : 注冊(cè)cell
// 參數(shù)1 : 是一個(gè)類(當(dāng)重用池中沒有cell的時(shí)候開始創(chuàng)建cell類)
// 參數(shù)2 : 給重用池一個(gè)重用標(biāo)示符

[tableview registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];

#pragma mark ----設(shè)置代理(處理數(shù)據(jù)和UI界面)

// 用于處理顯示視圖的相關(guān)內(nèi)容<UITableViewDelegate>

  tableview.delegate = self;

// 用于處理數(shù)據(jù)相關(guān)的內(nèi)容<UITableViewDataSource>

tableview.dataSource = self;

// 設(shè)置每個(gè)區(qū)有多少行

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
 }

// 設(shè)置分區(qū)數(shù)

  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

return 2;
}

// 設(shè)置每行cell的樣式和數(shù)據(jù)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
       /* // 第一種
// 第一步 : 現(xiàn)在重用池中去取重用的cell

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];

// 第二步 : 如果重用池中沒有,需要重新的創(chuàng)建一個(gè)
if (cell == nil)
{
 cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleDefault) reuseIdentifier:@"cell"];
}
*/

// 第二種方法  (一定要注冊(cè)cell)
// 第二步 : 根據(jù)重用池標(biāo)示符去取重用池的cell在這使用
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
// 設(shè)置文本
cell.textLabel.text = [NSString stringWithFormat:@"第 %ld 區(qū) --- 第 %ld 行",indexPath.section,indexPath.row];
return cell;

}

// 設(shè)置頭部標(biāo)題

  - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
 {
return [NSString stringWithFormat:@"這是 %ld 區(qū)頭標(biāo)題",section];
 }

// 設(shè)置尾部標(biāo)題

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
 {
return [NSString stringWithFormat:@"這是 %ld 區(qū)尾標(biāo)題",section];
}

// 設(shè)置右側(cè)索引

  - (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView
 {
    return @[@"a",@"b"];
}  

// 設(shè)置每個(gè)區(qū)頭部的高度

  - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
return 150;
 }

// 設(shè)置每行的高度 (可根據(jù)下標(biāo)AtIndexPath進(jìn)行專門的設(shè)置)

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
  if (indexPath.row == 0)
 {
    return 100;
}
return 50;

}

// 設(shè)置尾部的高度

    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 200;
}
結(jié)果展示部分

數(shù)據(jù)和操作部分參考這個(gè)里面


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末饭耳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子执解,更是在濱河造成了極大的恐慌寞肖,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衰腌,死亡現(xiàn)場(chǎng)離奇詭異新蟆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)右蕊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門琼稻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饶囚,你說我怎么就攤上這事帕翻。” “怎么了萝风?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵嘀掸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我规惰,道長(zhǎng)睬塌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任歇万,我火速辦了婚禮揩晴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贪磺。我一直安慰自己硫兰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布寒锚。 她就那樣靜靜地躺著瞄崇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壕曼。 梳的紋絲不亂的頭發(fā)上苏研,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音腮郊,去河邊找鬼摹蘑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛轧飞,可吹牛的內(nèi)容都是我干的衅鹿。 我是一名探鬼主播撒踪,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼大渤!你這毒婦竟也來了制妄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤泵三,失蹤者是張志新(化名)和其女友劉穎耕捞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烫幕,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺抽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了较曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磷斧。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捷犹,靈堂內(nèi)的尸體忽然破棺而出弛饭,到底是詐尸還是另有隱情,我是刑警寧澤萍歉,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布孩哑,位于F島的核電站,受9級(jí)特大地震影響翠桦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胳蛮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一销凑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仅炊,春花似錦斗幼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呆馁,卻和暖如春桐经,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浙滤。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工阴挣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纺腊。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓畔咧,卻偏偏與公主長(zhǎng)得像茎芭,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓沸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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