【发布时间】:2017-11-28 19:32:53
【问题描述】:
这段代码有问题:
navigationController?.hidesBarsOnSwipe = true
我的导航控制器的根视图控制器是一个 UICollectionViewController。下面的蓝色视图是代表用户当前屏幕的单元格。我认为问题在于导航栏隐藏时我需要调整单元格的大小。
我这样设置单元格大小:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width, height: view.frame.height - 44)
}
我没有打破任何限制,我非常确定一切都已正确设置。但是当我向上滑动时,会发生这种情况:
之前
之后
如您所见,视图被缩短了。我在代码中的任何地方都找不到这些测量值。
有没有办法确保正确调整视图大小?
【问题讨论】:
-
视图没有缩短。当导航栏消失时,它正在向上移动以填充左侧的孔。你知道如何改变视图的大小吗?如果您需要其他帮助,请显示您的代码。但也许这足以让你走上正轨......
-
您是说我需要手动调整视图大小吗?看起来应用程序应该自己解决这个问题。
-
@Mozahler 我认为问题在于我正在使用集合视图控制器,其中每个单元格都充当整个屏幕的视图。导航控制器检测到滚动,但不改变单元格的大小。有没有办法跟踪导航栏的这种隐藏,以便我可以更改单元格的大小?
-
如果你这样配置它就可以了。你绝对可以在 IB 中解决这个问题。我通常在 viewDidLoad 中以编程方式执行此操作,我已经为您提供了足够的信息来修复它。如果你想不通,我可以告诉你怎么做。但不是今天早上。我今天下午去看看你的情况如何。
-
@Mozahler 是的,我的项目不使用 IB。如果我添加上面关于结构的评论,包括一些代码,你能在答案中提供这个编程方法吗?
标签: ios swift3 uinavigationcontroller