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