標籤:
最近研究了一些HTML5的基礎,一些C++的基礎,有些冷落了我的iOS技術,以至於最近對於iOS有種沒有信心的感覺,所以今天開始迴歸我的iOS核心技術,眼前表現為回顧iOS技術,以部落格的形式,寫總結,好吧,廢話不多說
純程式碼形式建立:1.建立tableView
2.定義一個自訂Cell
3.設定代理
4.代理方法的我實現
tableView的建立主要有以下步驟:
1.建立tableView
- (void)createTableView
{
//初始化tableView並定義位置,大小。
UITableView * tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)];
//設定table代理的資料來源和代理為自己
tableView.delegate =self;
tableView.dataSource = self;
//為table 註冊自訂的Cell的類。註冊方法如下
[tableView registerClass:[MyCell class] forCellReuseIdentifier:@"MyCell"];
//加入視圖。
[self.view addSubview:tableView];
}
2.自訂Cell
@interface MyCell : UITableViewCell
@property(nonatomic,strong) UILabel * label;
@property(nonatomic,strong) UIImageView * image;
@end
@implementation MyCell
- (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self =[super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.label =[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 20, 30)];
self.image = [[UIImageView alloc]initWithFrame:CGRectMake(20, 30, 50, 50)];
[self.contentView addSubview:self.image];
[self.contentView addSubview:self.label];
}
return self;
}
@end
3.設定代理
@interface MyTableViewController ()<UITableViewDelegate,UITableViewDataSource>
4.代理方法的實現:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 15;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//為Cell設定重用的ID
MyCell * cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath];
//如果cell沒有才建立
if (cell==nil) {
cell= [[MyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"];
}
cell.textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
return cell;
}
關於iOS中TableVIew(列表)的自訂建立和自訂的Cell