iOS表視圖UITableView之基礎篇(一)

UITableViewiOS開發(fā)中使用最頻繁稽穆,也是最重要的視圖控件,在常用的APP中隨處可見。它繼承于UIScrollView独榴,可以滾動侦厚。
UITableView的每一條數(shù)據對應的單元格叫做Cell,是UITableViewCell(繼承于UIView)的一個對象劲阎。UITableView可以分區(qū)顯示绘盟,每個分區(qū)稱為section,每一行稱為row,編號都從0開始。系統(tǒng)為我們提供了一個專門的類來整合sectionrow悯仙,叫做NSIndexPath龄毡。sectionrow代表一個UITableViewCellUITableView上的位置。如下圖中锡垄,北京的位置為第1個分區(qū)第0行沦零。

Section與row.png

UITableView兩種樣式:UITableViewStylePlainUITableViewStyleGrouped。這兩者操作起來其實并沒有本質區(qū)別货岭,只是前者按照普通樣式顯示路操,后者按分組樣式顯示而已。以下分別為這兩種樣式的基本效果:

UITableViewStylePlain.png

UITableViewStyleGrouped.png
  • UITableView顯示的相關屬性
    //設置每一行cell的高度
    self.tableView.rowHeight = 80;
    //設置每一組的頭部標題高度
    self.tableView.sectionHeaderHeight = 50;
    //設置每一組的尾部標題高度
    self.tableView.sectionFooterHeight = 50;
    //設置分割線的顏色
    self.tableView.separatorColor = [UIColor redColor];
    //設置分割線的樣式
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    //設置表頭控件---這里主要應用是打廣告
    self.tableView.tableHeaderView = [[UISwitch alloc] init];
    //設置表尾控件---這里主要應用是加載數(shù)據
    self.tableView.tableFooterView = [[UISwitch alloc] init];
    //設置索引條的文字顏色
    self.tableView.sectionIndexColor = [UIColor orangeColor];
    //設置索引條的背景顏色
    self.tableView.sectionIndexBackgroundColor = [UIColor yellowColor];

  • UITableView兩個重要的協(xié)議
    1.委托協(xié)議UITableViewDelegate:用于定義節(jié)頭和節(jié)尾視圖以及響應觸摸事件千贯。
    @optional
    //設置每一行的高度
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
    //設置每一個分區(qū)的頂部自定義視圖
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section屯仗;
    //設置每一個分區(qū)的頂部高度
    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
    //告訴delegate選中了一個cell
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

2.數(shù)據源協(xié)議UITableViewDataSource:用于定義表視圖的數(shù)據源和視圖樣式。
@required
//設置每個分區(qū)的行數(shù)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section;
//tableView每次要顯示一個cell都會調用這個方法獲取
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

  @optional
  //設置分區(qū)個數(shù)
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView搔谴;
  //設置分區(qū)標題
  - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section魁袜;
  //設置索引欄數(shù)據
  - (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView
  //設置分區(qū)底部標題
  - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
  • UITableView重用cell的代碼流程:
    1.在創(chuàng)建UITableView之后敦第,需要注冊一個cell類峰弹,當重用池中沒有cell的時候,系統(tǒng)可以自動創(chuàng)建cell
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"MyCell"];
    2.系統(tǒng)提供了一個獲取重用池中cell的方法(需要提供一個重用標識):
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath];
    // do something
    return cell;
    }

以上內容是筆者對UITableView基礎的總結芜果。由于筆者也是iOS初學者鞠呈,總結過程中難免出現(xiàn)紕漏。如發(fā)現(xiàn)不足或錯誤右钾,歡迎批評指正蚁吝。大家共同學習!共同進步霹粥!

有關UITableViewiOS的更多知識灭将,請關注小編,期待后續(xù)文章后控!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末庙曙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浩淘,更是在濱河造成了極大的恐慌捌朴,老刑警劉巖吴攒,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砂蔽,居然都是意外死亡洼怔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門左驾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镣隶,“玉大人,你說我怎么就攤上這事诡右“财瘢” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵帆吻,是天一觀的道長域那。 經常有香客問我,道長猜煮,這世上最難降的妖魔是什么次员? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮王带,結果婚禮上淑蔚,老公的妹妹穿的比我還像新娘。我一直安慰自己愕撰,他們只是感情好束倍,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盟戏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甥桂。 梳的紋絲不亂的頭發(fā)上柿究,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音黄选,去河邊找鬼蝇摸。 笑死,一個胖子當著我的面吹牛办陷,可吹牛的內容都是我干的貌夕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼民镜,長吁一口氣:“原來是場噩夢啊……” “哼啡专!你這毒婦竟也來了?” 一聲冷哼從身側響起制圈,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤们童,失蹤者是張志新(化名)和其女友劉穎畔况,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慧库,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡跷跪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了齐板。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吵瞻。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖甘磨,靈堂內的尸體忽然破棺而出橡羞,到底是詐尸還是另有隱情,我是刑警寧澤宽档,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布尉姨,位于F島的核電站,受9級特大地震影響吗冤,放射性物質發(fā)生泄漏又厉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一椎瘟、第九天 我趴在偏房一處隱蔽的房頂上張望覆致。 院中可真熱鬧,春花似錦肺蔚、人聲如沸煌妈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽璧诵。三九已至,卻和暖如春仇冯,著一層夾襖步出監(jiān)牢的瞬間之宿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工苛坚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留比被,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓泼舱,卻偏偏與公主長得像等缀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子娇昙,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容