在ios swift中垂直滚动视图内的水平滚动视图问题

我的布局目前是这样的:

视图
- 查看
- 垂直滚动查看
------查看
---------水平分页滚动视图
---------查看
-------------水平滚动视图 - 无法正常工作

从xcode查看此图像以查看层次结构截图:

在这里输入图像描述

使用Swift

我将动态添加子视图到这个“大小选择滚动视图”

两个问题:

  • 添加视图后,子视图之间没有空白。 每个子视图的坐标。 (10.0,0.0,44.0,44.0),(54.0,0.0,44.0,44.0),(98.0,0.0,44.0,44.0),(142.0,0.0,44.0,44.0)等。
  • 但外观是这样的,没有每个子视图之间的10分差距:http://i.stack.imgur.com/mCGRW.png

  • 水平滚动是一种痛苦。 它仅适用于从滚动视图区域顶部开始的1/4高度,并且非常难以滚动。 我如何布局子视图,使这个滚动视图可以正确滚动?
  • 注意:我明确地将size scrollview的内容大小设置为超过要求,以便我可以看到滚动。


    我发现了这个问题。 根据Apple Docs,触摸事件只有完全位于其父项中时才会传递给子视图。

    在我的情况下,滚动视图超出了其父视图(细节视图)的范围,因为触摸事件很奇怪。 我增加了父视图的大小,以适应滚动视图,它现在工作正常。

    从文档(https://developer.apple.com/library/content/qa/qa2013/qa1812.html):

    此问题最常见的原因是您的视图位于其父视图的范围之外。 当您的应用程序收到触摸事件时,将启动命中测试过程以确定哪个视图应该接收事件。 该过程始于视图层次结构的根(通常是应用程序的窗口),并以前后顺序搜索子视图,直到找到触摸下的最前面的视图。 该视图成为命中测试视图并接收触摸事件。 此过程中涉及的每个视图首先测试事件位置是否在其范围内。 只有在测试成功后,视图才会将事件传递给子视图以进行进一步的命中测试。 因此,如果您的视图位于其父视图的边界之外,则父视图将无法测试事件位置,也不会将触摸事件传递到视图。

    链接地址: http://www.djcxy.com/p/90323.html

    上一篇: Issue with horizontal scrollview inside a vertical scrollview in ios swift

    下一篇: Rules for the contentInset of a UITableView in iOS 7?