2

有人知道是否有一些项目或东西可以复制 iOS 中 chrome 应用程序的地址栏行为吗?也就是说,向下滚动时,它会隐藏,如果我在表格中间,并且向上滚动,地址栏就会出现。

谢谢!

4

1 回答 1

0

大多数导航隐藏的工作方式是通过监听滚动/表格/网络视图中的滚动事件并调整导航栏的中心。

您可以让您的视图控制器成为相关视图的代表并应用某种级别的逻辑:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat scrollOffset = scrollView.contentOffset.y;
    CGPoint navigationBarCenter = self.navigationController.navigationBar.center;

    // A bunch of calculations
    navigationBarCenter.y = newlyCalculatedPosition;

    self.navigationController.navigationBar.center = navigationBarCenter;
}

对于这种特定行为,他们从滚动开始的位置计算并说“如果我向下滚动,导航栏中心应该是其原始中心减去滚动距离。如果我向上滚动,导航栏中心应该增加从刚刚离开屏幕到正常位置。

然后,您必须决定在滚动结束并且导航栏部分显示在屏幕上时要做什么。你是全部展示还是部分展示?

在 iOS7 之前,您还必须担心滚动视图的框架。iOS7 默认行为是让视图控制器扩展到设备的全尺寸,而 iOS6 默认行为是填充导航栏和工具栏之间的空间。您可以通过使用半透明导航栏来解决此问题,但需要调整您的内容和滚动指示器插图,以便在不滚动时将内容限制在内部区域。

于 2013-09-24T20:28:38.673 回答