2015-08-18 3 views
3

Использую UICollectionView по умолчанию UICollectionViewFlowLayout. Он работает на 8 прошивке, но на прошивке 7.1 я получаюАвто-макет еще требуется после выполнения -layoutSubviews. Реализация UICollectionView -layoutSubviews должна быть вызвана супер

Нагрузочного приложение из-за неперехваченное исключение «NSInternalInconsistencyException», причина: «Auto Layout еще требуется после выполнения -layoutSubviews. реализация UICollectionView о -layoutSubviews нужно вызвать супер

я нашел это “Auto Layout still required after executing -layoutSubviews” with UITableViewCell subclass, но ни один из раствора не работает

Еще один ключ, что я добавляю некоторые представления в UICollectionView и настройка AutoLayout для этой точки зрения

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [self.collectionView addSubview:button]; 

    [button mas_makeConstraints:^(MASConstraintMaker *make) { 
     make.left.top.right.equalTo(self.collectionView); 
     make.height.mas_equalTo(30); 
    }]; 

Это то, что в моем обычае UICollectionView

@implementation FTGCollectionView 

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    //[self layoutIfNeeded]; // Should not call as it cause collection view to not scroll 
} 

@end 
+0

вы переопределить layoutSubviews? если это так, вы назвали super.layoutSubviews? если нет, то вот вы: –

+0

Я вижу, что это может случиться с UICollectionView, UITextField, UITableView, UINavigationBar ... Мое обходное решение - отключить autoLayout для подзапросов (и внушительных дочерних объектов) и установить фрейм вручную – onmyway133

+0

Для UICollectionView мы может добавить subview в 'UICollectionReusableView' в его' layoutSubviews' – onmyway133

ответ

1

Я думаю, что это ошибка iOS 7, а не [self.collectionView addSubview:button]; Я перехожу на [self.view addSubview:button];, self.view - это родительский вид self.collectionView.

Так в iOS7 не добавляйте подвида в UICollectionView и использовать автоматическую раскладку для этого подвида

+0

@Quilang вы правы – onmyway133

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