1

チャット スレッドで写真をタップすると、iMessage に存在する「フォト ブラウザ」のコピーを作成しようとしています。タップするとナビゲーションバーの動作が適切に消えるようにする方法にこだわっています。

現在、私は電話しています

    [self.navigationController setNavigationBarHidden:YES animated:YES];

ビューがタップされてナビゲーション バーが非表示になったとき。ただし、これにより、ビューが上部のレイアウト ガイドにどのように応答するかにより、ビューがぎこちなく上に移動します。iMessage にはそれがあるため、ビューは上部のレイアウト ガイドを完全に無視し、そのすぐ下に配置されます。どうすればこれと同じ動作を得ることができますか?

写真のコレクションビューを作成するコードは次のとおりです。

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    [layout setSectionInset:UIEdgeInsetsZero];
    [layout setMinimumInteritemSpacing:0.0];
    [layout setMinimumLineSpacing:0.0];
    [layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];

    _collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
    [_collectionView setBackgroundColor:[UIColor whiteColor]];
    [_collectionView setPagingEnabled:YES];
    [_collectionView setAlwaysBounceHorizontal:YES];
    [_collectionView setDataSource:self];
    [_collectionView setDelegate:self];
    [_collectionView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [self.view addSubview:_collectionView];

.........

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewFlowLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(collectionView.bounds.size.width  - collectionViewLayout.sectionInset.left - collectionViewLayout.sectionInset.right, collectionView.bounds.size.height - collectionViewLayout.sectionInset.bottom - collectionViewLayout.sectionInset.top);
}
4

0 に答える 0