Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIView超过UIScrollView阻止其滚动_Ios_Objective C_Iphone_Swift_Uiscrollview - Fatal编程技术网

Ios UIView超过UIScrollView阻止其滚动

Ios UIView超过UIScrollView阻止其滚动,ios,objective-c,iphone,swift,uiscrollview,Ios,Objective C,Iphone,Swift,Uiscrollview,我有一个UITableView,每个单元格都有一个类似下图的视图,背景中的UIScrollView,以及UIScrollView上的另一个视图 [scrollView addSubview:firstView]; [firstView addSubview:secondView]; UIScrollView包含多个图像,用户应该能够通过在表格单元格上向右或向左滑动来查看它们,但由于第二个视图(红色区域)覆盖了UIScrollView,当我在该区域中滑动手指时,滚动不起作用,但在红色区域的顶部它

我有一个
UITableView
,每个单元格都有一个类似下图的视图,背景中的
UIScrollView
,以及UIScrollView上的另一个视图

[scrollView addSubview:firstView];
[firstView addSubview:secondView];
UIScrollView包含多个图像,用户应该能够通过在表格单元格上向右或向左滑动来查看它们,但由于第二个视图(红色区域)覆盖了UIScrollView,当我在该区域中滑动手指时,滚动不起作用,但在红色区域的顶部它可以正常工作,效果很好

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


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

尝试在红色区域的视图上禁用用户交互,这将允许触摸通过它。这可以通过情节提要来完成,或者只需转到view.userInteractionEnabled=false

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

    [self.view setExclusiveTouch:YES];
如果这不起作用,请将其添加到tableview中

    [tableView setExclusiveTouch:YES];

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

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

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

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

po myScrollView.subviews
然后检查输出以确保元素在子视图中

view.userInteractionEnabled = NO
并通过代码处理滚动

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

您是否将上面的视图添加为scrollView上的子视图?添加一些代码或您正在使用故事板?虽然此代码片段可以解决问题,但确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。但是,如果我想继续点击该视图中的按钮,该怎么办?@AhemadabbasVagh如果您可以将该按钮放置在已禁用交互功能的视图之外,但位于该视图之上,这将是最简单的解决方案,但除此之外,可能必须找出如何传递响应者链,而不是像平常一样吸收视图,我不知道如何从头开始做