当侧边栏处于活动状态时,防止TableView滚动

时间:2014-08-01 10:46:43

标签: ios objective-c uitableview swift

我在UITableView中有一个侧边栏,长按一个单元格后会显示。侧边栏有一些自定义按钮,可以提供更多功能。

SideView

如果UITableView上有用户标签,我会检查该点的位置。如果它在侧边栏之外,那么我将关闭它。

这里的问题是,如果用户尝试滚动(这里约有100行),侧边栏就会停留在确切位置。因此,我的目标是防止用户在侧视图出现时滚动桌面。 (我稍后还会突出显示所选行。)

我创建了UIGestureRecognizer

    tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:")
    view.addGestureRecognizer(tapGesture!)

并检查位置:

func handleTap(recognizer: UITapGestureRecognizer){

    let location = recognizer.locationInView(view)
        if !CGRectContainsPoint(contentView.frame, location){
    // dismiss
}

我有一个代表,告诉我是否存在侧视图,但如果我尝试设置:

tableView.userInteractionEnabled = false

我无法点击侧视图,因此禁用了所有用户互动。

有没有办法只禁用滚动?

1 个答案:

答案 0 :(得分:5)

如此简单,只需写下这个

tableView.scrollEnabled = NO;