gpt4 book ai didi

ios - UIScrollView 优于 MKMapView

转载 作者:行者123 更新时间:2023-11-29 02:24:25 26 4
gpt4 key购买 nike

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

这是一张显示布局的图片:

Layout image

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

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

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

最佳答案

听起来您正在 MKMapView 上添加一个全屏 UIScrollView,并且 ScrollView 正在获取所有触摸。

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

这是我会做的:

  1. 对 ScrollView 使用约束以确保它只覆盖底部栏区域。

  2. 确保您可以切换控制 ScrollView 高度的约束常量(如果您使用的是 Storyboard,请连接 IBOutlet)。

  3. 同时添加滑动手势识别器和点按手势识别器,如果被识别,它们将触发 toggleScrollViewFullScreen。确保这些识别器只能在 scrollView 为底部栏时才能被识别。

  4. 当 ScrollView 处于全屏状态时,在顶角显示一个 X-out 按钮。此按钮可以调用 toggleScrollViewFullScreen 以关闭 View 。

示例 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];
}];
}

关于ios - UIScrollView 优于 MKMapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27724063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com