0

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

我的要求是在一个地方我需要添加/显示父级,即 view.xib 完成的屏幕。在另一个地方,我只需要添加容器视图。当我仅添加/显示容器视图时,控件的关联事件/方法不起作用。

所以我想,如果我可以用父view.xib的类来改变容器视图的类,我的工作就可以完成了。

因此,如果可以以这种方式处理,请向我建议一些其他解决方案或类混合。

基本上我在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()
        }
4

1 回答 1

1

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

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

祝你好运,编码愉快!

- 编辑 -

您更新的代码显示这将成为 UITableView 的一部分,并且您正在尝试将自定义视图添加到 UITableViewCell 之上。相反,您应该实例化一个自定义 UITableViewCell 并将其注册为可重用的表视图。本教程应该指导你做到这一点:自定义 UITableViewCell 教程 - TableView with Images and Text in Swift

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

干杯!

于 2017-09-26T11:49:49.797 回答