上述自定义tableView代码中的注释已经很清楚了。 先设置视图的背景,再设定table view的背景,再看另外一段代码,设置了cell的背景,注意,这里面使用了自定义的cell类。
CustomCell 类:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell= [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
// Default to no selected style and not selected
cell.selectionStyle = UITableViewCellSelectionStyleNone;
// Set the image for the cell
[cell setTheImage:[UIImage imageNamed:[NSString stringWithFormat:@"Arrows%d.png", indexPath.row + 1]]];
return cell;
}
我们再看看如何定义自定义的cell :
声明类,CustomCell.h:
#import <UIKit/UIKit.h>
@interface CustomCell : UITableViewCell
{
UIImageView *image;
}
- (void) setTheImage:(UIImage *)icon;
@end
再看实现类
#import "CustomCell.h"
@implementation CustomCell
-(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
{
// Cells are transparent
[self.contentView setBackgroundColor:[UIColor clearColor]];
}
return self;
}
- (void) setTheImage:(UIImage *) icon
{
// Alloc and set the frame
image = [[UIImageView alloc] initWithImage:icon];
image.frame = CGRectMake(0, 0, 286, 68);
// Add subview
[self.contentView addSubview:image];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
if (selected == YES)
image.alpha = .5;
else
image.alpha = 1;
}
- (void)dealloc
{
[image release];
[super dealloc];
}
@end
利用tag来标记到底是点击了哪个按钮。
[btnOne setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:[listData objectAtIndex:(3*indexPath.row)],indexPath.row]] forState:UITouchPhaseEnded]; btnOne.tag = 3*indexPath.row; //采用在程序中计算出来,手工赋值实现。