我有一个UITableView
从服务器获取信息并将数据发布到表视图中。每个单元格内部都是来自服务器的信息。
就本例而言,假设我们从服务器获取的信息是数字:1,2,3,4。
我想要做的是在单元格的左侧添加图像(以编程方式,因为涉及if语句等),并在其旁边添加文本(1,2等)。
基本上,我希望每个单元格看起来像这样:
_____________________________________
| (IMAGE) (TEXT) | --CELL 0
--------------------------------------
_____________________________________
| (IMAGE) 2 | --CELL 1
--------------------------------------
请原谅我的粗略插图。 :)
答案 0 :(得分:20)
你去:
cell.imageView.image = [UIImage imageNamed:@"image.png"];
夫特:
cell.imageView?.image = UIImage(named: "image.png")
答案 1 :(得分:8)
您可以将图像和文本添加到UITableViewController子类中的UITableViewCell,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[[cell imageView] setImage:anImage];
[[cell textLabel] setText:[NSString stringWithFormat:@"%d",[indexPath row]];
return cell;
}
您可以利用UITableViewCell的一些“内置”属性,例如imageView,textLabel和detailTextLabel。有关详细信息,请查看Table View Programming Guide。
答案 2 :(得分:5)
第一个答案的Swift 2.0版本是:
cell.imageView?.image = UIImage(named: "image.png")
答案 3 :(得分:3)
UITableViewCell对象具有imageView
属性;你可以设置这个图像视图的图像,它会自动在正确的位置显示图像,旁边有标题。
答案 4 :(得分:0)
// create a rectangle box for image view
UIImageView *iconImage = [[UIImageView alloc] init];
iconImage.frame = CGRectMake(12,4,53.5,53.5);
// Create a label for cells
UILabel *cellName = [[UILabel alloc] initWithFrame:CGRectMake(75,18,200,20)];
cellName.font = [self fontForBodyTextStyle];
NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]];
// Select path row tab actions
switch (indexPath.row) {
case 0:
cellName.text = cellNameStr;
iconImage.image = [UIImage imageNamed:@"condition.png"];
[cell.contentView addSubview:iconImage];
[cell.contentView addSubview:cellName];
break;
case 1:
cellName.text = cellNameStr;
iconImage.image = [UIImage imageNamed:@"videos.png"];
[cell.contentView addSubview:iconImage];
[cell.contentView addSubview:cellName];
break;
case 2:
cellName.text = cellNameStr;
iconImage.image = [UIImage imageNamed:@"provider.png"];
[cell.contentView addSubview:iconImage];
[cell.contentView addSubview:cellName];
break;
case 3:
cellName.text = cellNameStr;
iconImage.image = [UIImage imageNamed:@"info.png"];
[cell.contentView addSubview:iconImage];
[cell.contentView addSubview:cellName];
break;
default:
NSAssert(NO, @"Unhandled value in cellForRowAtIndexPath");
break;
}