UIVc在UIScrollView上阻止它滚动

时间:2015-07-14 06:06:03

标签: ios objective-c iphone swift uiscrollview

我有UITableView,每个单元格都有一个如下图所示的视图,背景中的UIScrollView和UIScrollView上的另一个视图。

UIScrollView包含多个图像,用户应该可以通过在表格单元格上向右或向左滑动来查看它们,但是当第二个视图(红色区域)覆盖UIScrollview时,滚动我的时滚动不起作用手指在这个区域,但在红色区域的顶部,它没关系,工作完美。

enter image description here

我在另一个具有此功能的应用程序中看到,即使有其他视图覆盖背景,也可以在所有单元格高度进行滚动。

如果您与我分享您的建议,我将不胜感激:)

6 个答案:

答案 0 :(得分:9)

尝试在红色区域的视图上禁用userInteraction,这将允许触摸通过它。这可以通过故事板完成,或者只需转到view.userInteractionEnabled = false

答案 1 :(得分:0)

在ViewDidLoad方法中保留这行代码:

    [self.view setExclusiveTouch:YES];

如果这不起作用,请将其添加到您的tableview

    [tableView setExclusiveTouch:YES];

或者最后,您可以将滑动手势添加到tableview单元格并调用选择器并执行要执行的操作。

答案 2 :(得分:0)

将第二个视图添加为firstView或ScrollView的子视图。

[scrollView addSubview:firstView];
[firstView addSubview:secondView];

答案 3 :(得分:0)

对我来说,问题是视图不是UIScrollView的子视图。您可以通过在UIScrollView或父视图控制器类中的某处设置断点并在调试器窗口中输入以下内容来检查:

po myScrollView.subviews

然后检查输出以确保您的元素在子视图中。

答案 4 :(得分:0)

    scrollView.isScrollEnabled = false

并按代码处理滚动。

func scrollToPage(page: Int) {
    var frame = scrollView.frame
    frame.origin.x = frame.size.width * CGFloat(page)
    scrollView.scrollRectToVisible(frame, animated: true)
}

答案 5 :(得分:-2)

view.userInteractionEnabled = NO