UITableView继承于UIScrollView,每一个单元格是由UITableViewCell表示的。
创建UITableView
UITableView *aTable=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.frame.size.height) style: UITableViewStylePlain];
其中Style是用来设置表视图的样式:UITableViewStylePlain//简单样式 UITableStyleGrouped//分组样式
UITableView重要属性
separatoColor:表视图Cell的样式
tableHeaderView:表头的View
tableFooterView:表尾的View
UITableViewCell系统自带的四个属性,一般为了做出更多种多样的效果,我选择自定义一个CELL
NewCell.h
@property(nonatomic,retain) UILabel *name;
@property(nonatomic,retain) UIImageView *headImage;
@property(nonatomic,retain)UILabel *time;
@property(nonatomic,retain)UILabel *times;
NewCell.m
-(void)dealloc{
[_headImage release];
[_name release];
[_time release];
[_times release];
[super dealloc];
}
self.name=[[UILabel alloc] initWithFrame:CGRectZero];
[self.contentView addSubview:_name];
[_name release];
self.headImage=[[UIImageView alloc] initWithFrame:CGRectZero];
_headImage.layer.cornerRadius=35.0;
_headImage.layer.masksToBounds=YES;
[self.contentView addSubview:_headImage];
[_headImage release];
self.time=[[UILabel alloc] initWithFrame:CGRectZero];
[self.contentView addSubview:_time];
[_time release];
self.times=[[UILabel alloc] initWithFrame:CGRectZero];
[self.contentView addSubview:_times];
[_times release];
为了代码规范Label的尺寸设定一般写一个方法
-(void)layoutSubviews{
[_name setFrame:CGRectMake(90, 15, 150, 40)];
[_headImage setFrame:CGRectMake(10, 15, 70, 70)];
[_time setFrame:CGRectMake(90, 55, 150, 20)];
[_times setFrame:CGRectMake(280, 60, 40, 15)];
}
使用UITableView的时候需要引入一个协议UITableViewDataSource,里面有两个必须实现的方法
设定Cell的数量
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
设定重用池
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
设定重用池的名字
static NSString * cellIdentify =@"cellIdentify";
//指向重用池
NewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentify];
//如果不为空
if (cell ==Nil)
{
cell=[[[NewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentify] autorelease];
}