2016-06-26 3 views
1

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

Я хочу, чтобы UIView для просмотра содержимого ячейки с добавлением ведущих, верхних, конечных и нижних ограничений. Но когда я это делаю, ширина и высота моего UIView's остаются равными нулю. Вот мой код внутри initWithFrame метода:

self.contentView.translatesAutoresizingMaskIntoConstraints = NO; 
    _someView = [[UIView alloc] initWithFrame:CGRectZero]; 
    _someView.translatesAutoresizingMaskIntoConstraints = NO; 
    [self.contentView addSubview:_someView]; 
    NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}]; 
    NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}]; 

    [self.contentView addConstraints:horizontalConstraints]; 
    [self.contentView addConstraints:verticalConstraints]; 

А вот скриншот пользовательского интерфейса отладчика: enter image description here

Почему эти ограничения неактивны?

Спасибо!

+1

Все ли ваши ограничения установлены в любом классе размеров, который вы используете? Не уверен в визуальном отладчике, но IB/Storyboards имеет ограничение на greyed out, которое существует в проекте, но не установлено ни в какой комбинации классов размера, отображаемой редактором (по умолчанию любой/любой) –

+1

Разве ваша консоль бросает любые предупреждения о макетах ? Также установка 'translatesAutoresizingMaskintoConstraints' NO в contentView может нарушить систему компоновки ячеек. Попытайтесь не делать этого. –

+0

@WarrenBurton это сработало! Спасибо!!!! Пожалуйста, ответьте как ответ, и я проголосую и одобрю его! –

ответ

4

The contentView принадлежит UICollectionViewCell поэтому действие делает этот

self.contentView.translatesAutoresizingMaskIntoConstraints = NO;

ломает макет в клетке.

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

Смежные вопросы