语言:Swift 5
iOS :13.2
macOS :Catalina 10.15.4
我的应用程序具有以下结构:
根据我从分段控件或屏幕底部按钮中选择的内容,将不同的视图作为子视图以以下方式添加到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,我也怀疑该按钮是否可以识别任何用户交互(如触摸)。
到目前为止,我已经尝试过/迄今为止的分析:
我为问题中提到的UITableView设置了isUserInteractionEnabled true。
要检查是否可以识别触摸事件,我在选择器函数中添加了带有打印语句的UITapGestureRecognizer。另外,在touchesBegan函数中添加了打印语句。没有一个被打印出来。
我尝试使用viewp的viewController视图
self.view.bringSubviewToFront(self.currentViewController.view)
也没有帮助!
有人可以在这里指出问题吗?
答案 0 :(得分:1)
我有一个关于子级和细分的示例,请查看以下示例。
Cart
我建议您使用约束代替框架来设置子项尺寸,在我的示例中,当分段被按下时,我添加子项并删除另一个子项。