我想在下面的UITableview数组中添加一个不同的图标图像,即image1.png,image2.png等。真的需要有人帮忙。提前谢谢。
{
self = [super init];
if (self) {
// Custom initialization
self.tableData = [NSArray arrayWithObjects:@"Region", @"Subregion", @"Country", @"County", @"City", @"District", nil];
CGRect frame = self.view.bounds;
frame.size.height -= 100;
self.tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStyleGrouped];
[self.tableView setBackgroundColor:[UIColor clearColor]];
[self.tableView setDataSource:self];
[self.tableView setDelegate:self];
[self.tableView setScrollEnabled:NO];
[self.view addSubview:self.tableView];
}
return self;
}
答案 0 :(得分:4)
使用cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Configure the cell.
cell.textLabel.text = @"cell text";
cell.imageView.image = [UIImage imageNamed:@"image1.png"];
return cell;
}
答案 1 :(得分:4)
您可以创建另一个保留图片名称的数组
self.tablePicture = [NSArray arrayWithObjects:@"pic1.png", @"pic2.png", @"Country.png", nil];
按照您希望它们显示的顺序,并在cellForRowAtIndexPath中写入
cell.imageView.image = [UIImage imageNamed:[tablePicture objectAtIndex:indexPath.row]];
答案 2 :(得分:1)
您可以利用oop样式创建自定义类(例如DataItem
)并初始化使用DataItem
元素显示的数组。换句话说,您可以创建一个包含名称和图像元素的模型。
例如:
//.h
@interface DataItem : NSObject
{
NSString* name;
NSString* thunbmail;
}
@property (nonatomic, copy) NSString* name;
@property (nonatomic, copy) NSString* thunbmail;
- (id)initWithName:(NSString*)dName withThunbmail:(NSString*)dThunbmail;
@end
//.m
@implementation DataItem
@synthesize name;
@synthesize thunbmail;
- (id)initWithName:(NSString*)dName withThunbmail:(NSString*)dThunbmail
{
if(self = [super init])
{
name = [dName copy]; // release in dealloc!!
thunbmail = [dThunbmail copy]; // release in dealloc!!
}
return self;
}
// create dealloc here
@end
现在你可以初始化一个项目并将其添加到数组中(最好有一个NSMutableArray
),如下所示:
DataItem* di = [[DataItem alloc] initWithName:@"name" withThunbmail:@"image.png"];
NSMutableArray* arrData = [[NSMutableArray alloc] init];
[arrData addObject:di];
// add other object here
self.tableData = arrData;
// release memory...
然后在cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Configure the cell..
DataItem* di = (DataItem*)[self.tableData objectAtIndex:[indexPath row]];
cell.textLabel.text = di.name;
cell.imageView.image = [UIImage imageNamed:di.thunbmail];
return cell;
}
这是将您的内容封装在单个班级模型中的一种优雅方式。
希望它有所帮助。
P.S。检查代码。我是手写的。