Как бы я сделал так, чтобы мое изображение занимало весь вид изображения?

#ios #objective-c

Вопрос:

У меня есть представление изображения с установленными ограничениями, и изображение, которое я загружаю (с URL-адреса), по какой-то причине не заполняет все представление изображения. Я включил фотографию того, о ком идет речь, а затем подробное изображение того же «поста». Для обоих используется один и тот же код. В подробном представлении (которое отображается правильно) я установил изображение записи во время загрузки, и это автономное представление. Тот, который загружается в wonky, представляет собой ячейку представления таблицы с пользовательским классом, а изображение задается в cellForRowAtIndexPath. Я изменяю размер изображения перед отправкой в Back4App с разбором до 500×500, и оба вида изображений настроены на обрезку до границ и подгонку по размеру. ограничения uiimageview точно такие же, с нулевым выравниванием по горизонтали, фиксированной шириной и высотой, а также ограничениями для всех четырех сторон (8 от ближайших соседей).

вот фрагменты кода для того, как они оба выполняются:

розовый фон:

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

    PostCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"PostCell"];
    Post *post = self.posts[indexPath.row];
    
    PFUser *user = post.author;
    [user fetchInBackgroundWithBlock:^(PFObject * _Nullable object, NSError * _Nullable error) {
        cell.usernameLabel.text = post.author.username;
    }];
    cell.titleLabel.text = post.caption;
    cell.isLiked = NO;
    
    NSURL *imageURL = [NSURL URLWithString:post.image.url];
    [cell.imageView setImageWithURL:imageURL];
    
    
    return cell;
}
 

тот, который загружается правильно:

 - (void)viewDidLoad {

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    PFUser *user = self.post.author;
    [user fetchInBackgroundWithBlock:^(PFObject * _Nullable object, NSError * _Nullable error) {
        self.usernameTextLabel.text = self.post.author.username;
    }];
    self.titleTextLabel.text = self.post.caption;
    self.descriptionTextLabel.text = self.post.bodyText;
    NSURL *postImageURL = [NSURL URLWithString:self.post.image.url];
    [self.postImageView setImageWithURL:postImageURL];'''
    
}
 

Какие-нибудь советы? Возможно, есть некоторые основы, с которыми я не справляюсь — в основном я прошел ускоренный курс, и я занимаюсь этим всего около 3 недель, поэтому я не понимаю многое из этого так глубоко, как хотел бы.

Я установил цвет фона на розовый, чтобы вы могли видеть размер изображения по сравнению с видом изображения

тот, который загружается правильно

примечание: я буквально не могу понять, как правильно выполнять блоки кода??? я следую тому, что там написано, лол

Комментарии:

1. Неясно, как настроена ваша ячейка представления таблицы «PostCell». Обычно вы используете [imageView setContentMode:UIViewContentModeScaleAspectFit] масштабирование изображения (с сохранением соотношения сторон), чтобы оно соответствовало границам изображения.

Ответ №1:

Проверьте следующие моменты

  1. Отладьте размер кадра изображения, чтобы он был правильным, который вы указали.
  2. Установите следующее для просмотра изображения
       [cell.imageView setImageWithURL:imageURL];
      cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
      [cell.imageView setClipsToBounds:YES];
     

Комментарии:

1. спасибо за комментарий, но я все понял!

Ответ №2:

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