【问题标题】:UIScrollView over MKMapViewMKMapView 上的 UIScrollView
【发布时间】:2015-02-27 17:12:09
【问题描述】:

我正在尝试在 iOS 应用程序中创建特定布局,其中“背景”是 MKMapView,而叠加层是 UIScrollView。这个想法是有 两个 屏幕,一个带有地图,另一个带有一些附加信息。用户可以向下滚动以查看此一般信息,并且此视图覆盖了地图并具有模糊的背景以创建一些深度。

这是显示布局的图像:

如您所见,地图的位置是固定的。即使您滚动,它也将始终位于内容的后面。我希望地图能够响应手势,但仅限于直接在地图上使用时。当用户“滚动”底部栏时,我希望内容向上滚动,显示第二页,然后覆盖地图。

我不知道该怎么做才能实现这一目标。我尝试将地图放在原始UIView 上,然后用滚动视图覆盖它,但这会导致地图无法响应手势。我只希望UIScrollView 在底部栏或第二页(每个都是自己的单独视图)上响应手势。否则我希望地图响应手势。

我希望我能很好地解释它,如果没有,请不要犹豫,提问。感谢所有帮助!

【问题讨论】:

    标签: ios layout uiscrollview uistoryboard gestures


    【解决方案1】:

    听起来您在 MKMapView 之上添加了一个全屏 UIScrollView,并且滚动视图正在拾取所有触摸。

    您所询问的内容不一定是标准的,因此有多种方法可以实现它,您必须决定哪种方法最适合您的用例。

    我会这样做:

    1. 在滚动视图上使用约束以确保它只覆盖底部栏区域。

    2. 确保您可以切换控制滚动视图高度的约束常量(如果您使用情节提要,请连接一个 IBOutlet)。

    3. 添加一个滑动手势识别器和一个轻击手势识别器,如果被识别,将触发 toggleScrollViewFullScreen。确保这些识别器只能在 scrollView 位于底栏时被识别。

    4. 当滚动视图处于全屏状态时,顶部角落会显示 X-out 按钮。这个按钮可以调用toggleScrollViewFullScreen来关闭视图。

    toggleScrollViewFullScreen 方法示例:

    //Toggle size of scroll view
        - (void) toggleScrollViewFullScreen {
            CGFloat bottomBarHeight = 100;
            if (self.scrollViewHeightConstraint.constant > bottomBarHeight){
                self.scrollViewHeightConstraint.constant = bottomBarHeight
            }else {
                self.scrollViewHeightConstraint.constant = self.view.bounds.size.height;
            }
            //Animate constraint change:
            [UIView animateWithDuration:1 animations:^{
                [self.view setNeedsUpdateConstraints];
                [self.view setNeedsLayout];
            }];
        }
    

    【讨论】:

    • 是否可以让bottom-bar 接收触摸,然后将其发送到ScrollView,它本身不接收任何触摸,从而有效地让Map 工作?
    • 再想一想,这真的不是很重要。但是,我将如何使用paging 实现您的方法?我希望用户正常滚动,但一旦释放就锁定到一个页面,而不是在滑动时自动动画到新页面。
    • 你可以切换 scrollEnabled 属性来获得那种效果。
    • 我最终只是使用 UIView 动画而不是滚动视图来移动视图。这不完全是我想要的,但它有效。感谢您的启发!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2015-11-10
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多