自定义UITableViewCell中的不同UIImage大小

时间:2010-11-24 02:33:59

标签: iphone objective-c uitableview uiimageview uiimage

我正在从互联网上下载一些图像,这些图像来自几个不同的位置,所有这些图像都具有未知和不同的尺寸。

我已经成功地将它们全部延迟加载并且在我创建的自定义UITableViewCell中下载时出现,其中包含UIImageView(cellImageView宽度320,高度100)。

我正在设置Table的单元格并调整行高度,如下所示:

- (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吗?也许创建我自己的缩放功能?

2 个答案:

答案 0 :(得分:0)

你在IB或xcode中创建了UITableViewCell吗?如果在xcode中我会有兴趣看到layoutSubviews方法。

答案 1 :(得分:0)

原来的自定义UITableViewCell,它的视图和UIImageView的高度都略有不同,给它带来了混乱的结果。