我有一个 view.xib 文件,它有一个小容器(容器 View ),它包含所有控件,如按钮/文本字段,控件的所有事件都由父 view.xib 类文件处理。
我的要求是在一个地方我需要添加/显示父级,即 view.xib 完成屏幕。在另一个地方,我只需要添加容器 View 。当我仅添加/显示容器 View 时,控件的关联事件/方法不起作用。
所以我想,如果我可以用父 view.xib 的类更改容器 View 的类,我的工作就可以完成。
因此,如果可能以这种方式处理,请建议我一些其他解决方案或类调配。
基本上,我在 uitableview 单元格的容器( View )上添加了容器 View ,我的代码如下所示
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()
}
最佳答案
我相信您正在尝试做的是使用您的控制按钮创建一个可重复使用的 UIView,您可以在不同的 View Controller 中使用它。 Youtube 上有一个很棒的教程,名为 iOS Basically: Reusable UIView - Programming in Swift (Part 1) .
基本上,您需要创建一个专用于您要重复使用的 View 的 .Xib 文件,所有操作都由该自定义 View 类处理。每次您需要自定义 View 时,您都需要从 Xib 文件实例化它并手动将其作为 subview 添加到容器 View 中。
祝你好运,编码愉快!
-- 编辑--
您更新的代码显示这将是 UITableView 的一部分,并且您正在尝试将自定义 View 添加到 UITableViewCell 之上。您应该改为实例化自定义 UITableViewCell 并将其注册为可重用 TableView 。本教程将指导您如何做到这一点:Custom UITableViewCell Tutorial - TableView with Images and Text in Swift
您可以在您的自定义表格单元格中定义您的@IBAction,并将您的按钮选择器附加到您自定义单元格 Nib 中的操作。
干杯!
关于ios - 如何快速实现类调配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425338/