UIColllectionView not respecting layout

105 views Asked by At

I want to change my collection view layout after rotation in order to change the cell size. In the simulator works great. On iPhone 6 doesn't.

Code is as follows:

-(void)viewDidLoad {
        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
        self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
        [_collectionView registerClass:[TLListCell class] forCellWithReuseIdentifier:kTLAsyncListCell];
        _collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        _collectionView.contentInset = UIEdgeInsetsMake(LIST_GAP, LIST_GAP, LIST_GAP, LIST_GAP);
        _collectionView.backgroundColor = [UIColor clearColor];
        _collectionView.dataSource = self;
        _collectionView.delegate = self;
        UIRefreshControl *refreshControl = [self reportRefreshControl];
        [_collectionView addSubview:refreshControl];
       [self.view addSubview:_collectionView];
}

-(void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    layout.itemSize = CGSizeMake(20, 20);
    [self.collectionView setCollectionViewLayout:layout animated:YES completion:nil];
    // collection view doesn't respect this layout
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    // not called after changing the layout!!!
}
0

There are 0 answers