Различные размеры UIImage в пользовательском UITableViewCell - PullRequest
0 голосов
/ 24 ноября 2010

Я загружаю несколько изображений из Интернета, из нескольких разных мест, все с неизвестными и разными размерами.

Я успешно получил их ленивую загрузку красиво и появляется при загрузке в пользовательском UITableViewCell Iсоздал, который имеет 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;
}

Проблема вЯ не могу заставить клетки отображаться правильно.Я поэкспериментировал с contentMode UIImageView и обнаружил, что AspectFill работает нормально, но толкает все вверх, вызывая отсечение и маскирование, и растягивает некоторые изображения, когда их не должно быть.Использование Top решает вертикальную проблему, но TableViewCell тогда не помещается в изображение (иногда изображение слишком велико.

). Решение заключается в изменении размера строки таблицы, пользовательского TableViewCell, UIImage и UIImage? А может, создать свою собственную функцию масштабирования?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2010

Оказывается, пользовательский TableViewCell, его вид и UIImageView были немного разной высоты, что давало ему испорченные результаты.

0 голосов
/ 25 ноября 2010

вы создали UITableViewCell в IB или в xcode?если в xcode мне было бы интересно увидеть метод layoutSubviews.

...