Неверный размер изображений в TableView - PullRequest
2 голосов
/ 30 мая 2011

Я создаю табличное представление с изображениями из URL-адреса, но изображения не изменяют размер всего представления, пока я не установил его в строке.Есть идеи, почему это происходит?Это пользовательский просмотр таблицы

Мой код:

- (UITableViewCell *)tableView:(UITableView *)tableView    cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *CellIdentifier = @"Celula_Noticias";

   Celula_Noticias *cell = (Celula_Noticias*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

    NSArray * top= [[NSBundle mainBundle] loadNibNamed:@"Celula_Noticias" owner:self options:nil];

    for(id currentObject in top){
        if ([currentObject isKindOfClass:[Celula_Noticias class]]) {
            cell= (Celula_Noticias *) currentObject;
            break;
        }

    }


}


cell.Image_Noticias_1.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[noticias objectAtIndex:indexPath.row ] objectAtIndex:0]]]];

cell.Image_Noticias_2.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[noticias objectAtIndex:indexPath.row ] objectAtIndex:2]]]];

cell.Titulo_Noticias_1.text=[[noticias objectAtIndex:indexPath.row ] objectAtIndex:1];
cell.Titulo_Noticias_2.text=[[noticias objectAtIndex:indexPath.row ] objectAtIndex:3];


return cell;

}

таблица заполнена правильно, но изображение не начинается с правильного размера.

Я пытался использовать CGRectMake, но он все еще не работает.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 30 мая 2011

Создайте функцию для пост-обработки загруженного изображения:

- (UIImage*)postProcessImage:(UIImage*)image
{
        CGSize itemSize = CGSizeMake(50, 50);

        UIGraphicsBeginImageContext(itemSize);
        CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
        [image drawInRect:imageRect];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return newImage;
}

Приведенная выше функция вернет вам красивое изображение 50 * 50.

Тогда вы можете сделать:

UIImage* downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"...url goes here..."]]];
UIImage* newImage = [self posProcessImage:downloadedImage];
cell.imageView.image=newImage
0 голосов
/ 31 мая 2011

Я решил проблему ... Мое представление внутри ячеек таблицы в Xib-файле было больше, чем у ячеек таблицы, поэтому оно начинается неправильно (теперь я не знаю, почему), но теперь таблица заполнена правильно.

Спасибо всем

0 голосов
/ 31 мая 2011

Я думаю, что UIImageView, который вы используете, вы должны изменить его свойство для соответствия аспекту (если это не так)

...