子视图中的UITableView不响应触摸事件,也不滚动

时间:2020-07-18 03:18:51

标签: ios swift uitableview

语言:Swift 5

iOS :13.2

macOS :Catalina 10.15.4

我的应用程序具有以下结构:

enter image description here

根据我从分段控件或屏幕底部按钮中选择的内容,将不同的视图作为子视图以以下方式添加到ContainerView:

对于分段控件:

//viewControllerForSelectedSegmentIndex returns the appropriate UIViewController
if let vc = viewControllerForSelectedSegmentIndex(index: sender.selectedSegmentIndex, 
    control: sender) 
{
        self.addChild(vc)
        self.transition(from: self.currentViewController!, to: vc, duration: 0.5, 
        options:.transitionFlipFromRight, animations: 
        {
            self.currentViewController!.view.removeFromSuperview()
            vc.view.frame = CGRect(x: 0 , y: 130, width: self.view.frame.width, height: 
            self.view.frame.height-250)
            self.containerView.addSubview(vc.view)
            
            }, completion: { finished in
                vc.didMove(toParent: self)
                self.currentViewController!.removeFromParent()
                self.currentViewController = vc
            }
        )
        sender.changeUnderlinePosition()

    }

如果选择按钮之一:

    let vc = BrowseController()
    self.addChild(vc)
    self.currentViewController!.view.removeFromSuperview()
    vc.view.frame = CGRect(x: 0 , y: 130, width: self.view.frame.width, height: 
            self.view.frame.height-250)
    self.containerView.addSubview(vc.view)
    vc.didMove(toParent: self)
    self.currentViewController!.removeFromParent()
    self.currentViewController = vc

UIViewController:

每个作为子级添加的UIViewController都具有一个UIScrollView。所有UI元素都添加到UIScrollView内的视图中。

问题:

viewControllers的夫妇包含UITableView。 UITableView呈现正确,但是,我无法滚动它。一张表格视图的单元格内部有UIButton,我也怀疑该按钮是否可以识别任何用户交互(如触摸)。

到目前为止,我已经尝试过/迄今为止的分析:

  1. 我为问题中提到的UITableView设置了isUserInteractionEnabled true。

  2. 要检查是否可以识别触摸事件,我在选择器函数中添加了带有打印语句的UITapGestureRecognizer。另外,在touchesBegan函数中添加了打印语句。没有一个被打印出来。

  3. 我尝试使用viewp的viewController视图

     self.view.bringSubviewToFront(self.currentViewController.view)
    

    也没有帮助!

有人可以在这里指出问题吗?

1 个答案:

答案 0 :(得分:1)

我有一个关于子级和细分的示例,请查看以下示例。

Cart

我建议您使用约束代替框架来设置子项尺寸,在我的示例中,当分段被按下时,我添加子项并删除另一个子项。

相关问题