2017-09-26 82 views
0

我有一个view.xib文件,它有一个小容器(容器视图),其中包含按钮/文本字段等所有控件,控件的所有事件都由父级view.xib类文件处理。如何实现类swizzling swift?

我的需求是在一个地方,我需要添加/显示父母即view.xib完成屏幕。在另一个地方我需要添加容器视图。当我只添加/显示容器视图时,控件的相关事件/方法不起作用。所以我想,如果我可以改变父视图类的容器视图类,我的工作就可以完成。

所以要么建议我一些其他的解决方案或类如果可以用这种方式处理swizzaling。

基本上我加入容器视图上的UITableView细胞的容器(图)我的相同代码如下

if let questionContainerView = cellQuestionView.viewQuestionContainer { 


    // let questionContainerView = cellQuestionView 
      cell.viewQuestionContainer.addSubview(questionContainerView) 
      questionContainerView.translatesAutoresizingMaskIntoConstraints = false 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.left, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.left, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.right, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.right, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.top, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 0)) 
      cellQuestionView.layoutIfNeeded() 
     } 
+0

你可以添加一些代码来解释你的问题吗? –

+0

我编辑了我的问题 –

回答

1

我相信你正在试图做的是建立一个可重复使用的UIView与控制按钮,可以在不同的视图控制器中使用。 Youtube上有一个很棒的教程,标题为iOS Basically: Reusable UIView - Programming in Swift (Part 1)

基本上,您将希望创建一个.Xib文件专用于您想要重用的视图,以及由该自定义视图类处理的所有操作。每次你想要自定义视图时,你都需要从Xib文件中实例化它,并手动将它作为子视图添加到容器视图中。

祝你好运,快乐的编码!

- 编辑 -

你更新的代码表明,这将是一个UITableView的一部分,您要添加上一个UITableViewCell的顶部自定义视图。您应该实例化一个自定义UITableViewCell并将其注册为可重用的表视图。本教程应指导您如何做到这一点:Custom UITableViewCell Tutorial - TableView with Images and Text in Swift

您可以在自定义表格单元格中定义您的@IBAction,并将您的按钮选择器附加到您的自定义单元格的笔尖中的动作。

干杯!