我正在尝试在UITableViewCell中显示UIImageView。
内部方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我有:
- (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];
}
CGSize cellSize = cell.frame.size;
CGFloat cellWidth = cellSize.width;
CGFloat cellHeight = cellSize.height;
CGRect imageFrame = CGRectMake(0, 0, 70, cellHeight);
UIImageView * image = [[UIImageView alloc] initWithFrame:imageFrame];
[image setImage:[UIImage imageWithContentsOfFile:@"cyan.jpg"]];
CGRect nameFrame = CGRectMake(80, 0, cellWidth-80, cellHeight/2);
UILabel * nameLabel = [[UILabel alloc] initWithFrame:nameFrame];
nameLabel.text = @"Name: John Doe";
CGRect jobFrame = CGRectMake(80, 20, cellWidth-80, cellHeight/2);
UILabel * jobLabel = [[UILabel alloc] initWithFrame:jobFrame];
jobLabel.text = @"Job: IT-Consultant";
[cell addSubview:image];
[cell addSubview:nameLabel];
[cell addSubview:jobLabel];
return cell;
}
标签显示完美,但我看不到图像。
任何帮助都将不胜感激。
答案 0 :(得分:6)
imageWithContentsOfFile:
期望将路径发送给它。请改用imageNamed:
,或首先使用NSBundle
的pathForResource ...方法来获取路径。
此外,如果每个单元格的图像相同,则应在cell = nil块内添加图像视图,否则您将反复添加视图。
答案 1 :(得分:2)
将其添加到UITableViewCell
contentView中。
[cell.contentView addSubview:...];
答案 2 :(得分:1)
使用UITableViewCell的imageView属性而不是你正在做的事情。为了更清楚,使用cell.imageView.image并将你的UIImage设置为。
或者如果您希望图像的位置更灵活,请将imageView添加到单元格的contentView中。即:[cell.contentView addSubview:yourImageView];