【发布时间】:2010-11-24 02:33:59
【问题描述】:
我正在从互联网上下载一些图像,它们来自几个不同的位置,所有图像的尺寸都未知且不同。
我已经成功地让它们都很好地延迟加载,并在下载时出现在我创建的自定义 UITableViewCell 中,其中有一个 UIImageView(cellImageView 宽度 320,高度 100)。
我正在设置表格的单元格并调整行高,如下所示:
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath
{
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image)
{
CGFloat scaleFactor = 320.0f / download.image.size.width;
CGFloat heightScaled = (scaleFactor * download.image.size.height);
return heightScaled;
}
return 100.0f;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ImageTableCell *cell = (ImageTableCell *)[tableView dequeueReusableCellWithIdentifier:[ImageTableCell reuseIdentifier]];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"ImageTableCell" owner:self options:nil];
cell = loadCell;
self.loadCell = nil;
}
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image == nil)
{
download.delegate = self;
}
cell.cellImageView.image = download.image;
return cell;
}
问题是我无法让单元格正确显示。我玩过 UIImageView 的 contentMode 并发现 AspectFill 工作正常,但将所有内容向上推,导致剪切和遮罩,并在不应该的时候拉伸一些图像。使用 Top 解决了垂直问题,但 TableViewCell 不适合图像(有时图像太大。
解决办法是调整Table的行、自定义TableViewCell、UIImage和 UIImage吗?也许创建我自己的缩放功能?
【问题讨论】:
标签: iphone objective-c uitableview uiimageview uiimage