3

セル サイズを変更するために、回転後にコレクション ビューのレイアウトを変更したいと考えています。シミュレーターではうまく機能します。iPhone 6ではそうではありません。

コードは次のとおりです。

-(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!!!
}
4

0 に答える 0