禁用表标题视图

时间:2015-10-29 00:01:40

标签: ios objective-c uitableview uigesturerecognizer

我正在尝试为GMSPlacePicker构建类似的控制器。 我在背景上有Map View,然后是透明标题视图的Table View。问题是标题视图中的所有手势(点击,平移)都会传递到表格视图。我想禁用它们,所以所有的触摸都将直接进入地图视图。

我能够做到如果我设置:

tableView.userInteractionEnabled = false

但现在我无法滚动表视图。

问题是如何仅为标题视图禁用所有手势,但继续将它们用于表格视图。

基本上我想得到以下行为:https://youtu.be/iSBbEZXDyGg

2 个答案:

答案 0 :(得分:0)

您需要将地图放在标题视图中。不在其后面。

答案 1 :(得分:0)

诀窍是创建UITableView的子类并覆盖

func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView?

ANTableView.swift

import UIKit

class ANTableView: UITableView
{
    override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView?
    {
        let headerViewFrame = tableHeaderView!.convertRect(tableHeaderView!.frame, toView: self)

        if CGRectContainsPoint(headerViewFrame, point) {
            return nil
        }

        return self
    }
}