【发布时间】:2018-10-03 08:43:02
【问题描述】:
我创建了一个屏幕,其中我有一个全屏UITableView,我为其设置了UIEdgeInsets,我的配置如下:
categoriesTableView.contentInset = UIEdgeInsets.init(top: HEADER_VIEW_HEIGHT, left: 0, bottom: 0, right: 0)
其中HEADER_VIEW_HEIGHT 是CGFloat = 160。
这允许我向UITableView 添加一个“标题视图”,当我开始滚动UITableView 时,它会被覆盖(......并且不会像真正的标题视图那样卡在 UITableView 上方)。
问题:问题是我需要在标题视图中有3个可点击的视图,所以我在故事板中设计了3个视图并在它们上配置了Tap Gesture Recognizers。但是当我尝试使用它们时,即使我在屏幕上看到这些视图(由于 contentInset 配置),点击手势也不会传递UITableView。我可以让它们可点击/可点击的唯一方法是,如果我在 UITableView 上将 User Interaction Enabled 设置为 false(我不能这样做,因为我需要 UITableView 也可以拖动和点击)。
问题:如果由于 contentInset 设置而未被UITableView 覆盖,我如何将点击事件传递给较低的“标题视图”可点击部分?
这是 UI 图像,在其中您可以看到有一个全屏 UITableView,在它后面有一个包含 3 个子视图的视图,其中包含 3 个最喜欢的项目,我可以将它们呈现给用户以便更轻松地访问。当屏幕启动时,UITableView 有一个 contentInset,因此用户可以看到这些简单的访问选项并按下它们(他现在不能这样做)。当用户开始滚动时,UITableView 会出现在具有 3 个视图的布局顶部,并且用户可以全屏滚动列表。有点像视差效果。
【问题讨论】:
标签: ios swift uitableview uitapgesturerecognizer