在我的应用程序中,当提示用户选择一个项目时,我会弹出一个 UITableView。根据商品是否有货、缺货、是否在订购等,我想在 UITableViewCell 的右侧显示一张图片。
我试过使用附件视图按钮,但它没有显示在 UITableViewCell 上。我尝试将 UITableViewCellStyle 更改为 UITableViewCellStyleValue2 (带有详细关闭按钮的样式),并且还尝试直接设置单元格的附件类型。
static NSString *CellIdentifier = @"MyCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
//cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier];
}
[cell.textLabel setText:@"Testing"];
[cell.detailTextLabel setText:@""];
//cell.accessoryType = UITableViewCellAccessoryNone;
//cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
UIImageView *imageView = [[UIImageView alloc] initWithImage:[myImageFilePath stretchableImageWithLeftCapWidth:0 topCapHeight:1.0]];
[imageView setContentMode: UIViewContentModeScaleAspectFit];
[imageView setFrame:CGRectMake(0, 5, cell.frame.size.height - 10, cell.frame.size.height - 5)];
cell.accessoryView = imageView;
return cell;
当应用程序运行时,UITableViewCells 会出现“测试”文本,但单元格的右侧没有图像。
是否需要覆盖另一种方法才能为详细信息披露按钮实现自定义 UIImage?
“按钮”更像是一个状态指示器,因为我不希望点击按钮做任何与点击 UITableViewCell 上其他任何地方不同的事情(只需选择行)。
一些附加信息:
如果我删除
[imageView setFrame:CGRectMake(0, 5, cell.frame.size.height - 10, cell.frame.size.height - 5)];
然后图像显示在 UITableViewCell 中,但它太大并且不适合单行,因此它与其他行的辅助视图重叠。
我正在使用 setFrame 以便它调整图像的大小以适合 UIViewContentModeScaleAspectFit 以便它适合行,但它似乎完全阻止了图像的出现。
请注意,在此示例中 cell.frame.size.height = 44。
如果我将框架更改为:
[imageView setFrame:CGRectMake(0.0, 0.0, 120, 44)];
然后图像出现在行上。
但是,由于它是 120 像素宽,它会截断带有尾随 ... 的文本。图像可以在尾随 ... 之前放置大约 3 次,宽度为 120,高度为 44。
我怎样才能让尾随 ... 更接近图像?
如果我将 120 降低到较低的值,图像会向右移动并最终从单元格中消失。