記錄一個(gè)菜鳥(niǎo)的iOS學(xué)習(xí)之旅嗡载,如能幫助正在學(xué)習(xí)的你踏拜,亦楓不勝榮幸鞋邑;如路過(guò)的大神如指教幾句氓辣,亦楓感激涕淋秒裕!
在亦楓的《iOS學(xué)習(xí)之旅》上一篇文章 —— iOS自定義單元格之故事板方式中,我們通過(guò)故事板的方式钞啸,實(shí)現(xiàn)了自定義單元格創(chuàng)建一個(gè)簡(jiǎn)單的表視圖几蜻。本文我們來(lái)學(xué)習(xí)另一種方式——xib文件。
我們還是第一篇文章中創(chuàng)建的簡(jiǎn)單表視圖Demo為例体斩,右擊工程目錄梭稚,選擇New File,使用 User Interface
下面的Empty模板創(chuàng)建一個(gè)xib文件:
next創(chuàng)建名為CustomCell的xib文件絮吵,然后設(shè)計(jì)單元格樣式弧烤。拖拽一個(gè)圖片控件和文本控件,在屬性檢測(cè)器中設(shè)置寬高等控件屬性源武,如圖所示:
New File扼褪,通過(guò)Source里面的Cocoa Touch Class模板創(chuàng)建自定義單元格類的頭文件 CustomCell.h
和實(shí)現(xiàn)文件 CustomCell.m
:
然后為xib文件和頭文件創(chuàng)建連接和添加控件的輸出口。創(chuàng)建方式就不再重復(fù)復(fù)述了粱栖,記得設(shè)置xib文件的class類和單元格的重用標(biāo)識(shí)符(比如設(shè)置為:CustomCell话浇,在代碼中創(chuàng)建單元格對(duì)象時(shí)需要使用)。
最后在 ViewController.m
文件的 tableView: cellForRowAtPathIndex:
編寫創(chuàng)建單元格對(duì)象的代碼闹究,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifierString = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:identifierString];
if (cell==nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:identifierString owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSInteger rowIndex = [indexPath row];
NSDictionary *cellDictionary = [self.simpleData objectAtIndex:rowIndex];
cell.titleLabelView.text = [cellDictionary objectForKey:@"name"];
cell.coverImageView.image = [UIImage imageNamed:[cellDictionary objectForKey:@"cover"]];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
這樣幔崖,我們就完成了使用xib文件自定義單元格創(chuàng)建表視圖的全過(guò)程,運(yùn)行結(jié)果如圖所示: