UIImageView autolayout проблема в UICollectionViewCell на iOS7 но на iOS8 это нормально


Есть проблема с уменьшением размера изображения в ImageView. В CollectionViewCell есть ImageView с ограничениями: два горизонтальных и два вертикальных пространства.
Первый экран-iOS7, а второй - iOS8. Введите описание изображения здесьВведите описание изображения здесь

ImageURL это пользовательский класс для загрузки изображения по URL, он работает нормально, также установите изображение как

    _clothesImageView.image = [UIImage imageNamed:@"imageName.png"];

    - (void)configCellWithClothesModel:(ClothesModel *)clothesModel
    {
        [_clothesImageView setImageURL:[NSURL URLWithString:clothesModel.imageURL]];
    }

Модель одежды:

- (instancetype)initWithDict:(NSDictionary *)dict
{
    self = [super init];
    if (self)
    {
        _isShop = @(YES);
        self.title = [self checkNullAndNill:dict[kTitle]];
        self.info = [self checkNullAndNill:dict[kDescription_Short]];
        self.artNumber = [self checkNullAndNill:dict[kArtNumber]];
        self.afLink = [self checkNullAndNill:dict[kDeeplink1]];
        self.imageURL = [self checkNullAndNill:dict[kImg_url]];
        _isCart = @(NO);
    }
    return self;
}


//==============================================================================


- (id)checkNullAndNill:(id)object
{
    if (object == nil)
        return @"";
    else if (object == [NSNull null])
        return @"";
    else
        return object;
}


//==============================================================================


- (UICollectionViewCell *)configCellWithType:(NSString *)type collectionView:(UICollectionView *)collectionView indexPath:(NSIndexPath *)indexPath
{
    ClothesCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[type isEqualToString:@"Outfits"] ? @"CellOutfits" : @"Cell" forIndexPath:indexPath];
    [cell configCellWithClothesModel:self];
    return cell;
}


//==============================================================================
2 3

2 ответа:

В xcode6 Interface builder не показывает вид содержимого ячейки. CollectionViewCell имеет представление содержимого в iOS7, и его фрейм имеет значения по умолчанию (0,0,50,50).
Вам нужно добавить этот код в подкласс CollectionViewCell, чтобы contentView изменил размер

- (void)awakeFromNib
{
   [super awakeFromNib];
   self.contentView.frame = self.bounds;
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}

Это действительно может зависеть от настроек автозапуска.
UIImageViews обычно устанавливают свои размеры на основе внутреннего размера содержимого, который устанавливается равным размеру размещаемого изображения.
Если ваша ячейка представления коллекции не имеет достаточного количества ограничений, то то, что вы видите, может зависеть от реализации механизма autolayout на разных iOS.
Также проверьте режим содержимого изображения, как кто-то указал в комментариях.