我已经将UIView设计为带有类的XIB。 我可以使用这个xib,作为其他UIViews的现有示例吗? 所以,我想创建这个UIView一次,然后在应用程序的不同部分使用它。
答案 0 :(得分:1)
是的,您可以随意在任何地方实例化它:
显示如何实例化为视图的答案:How to initialize/instantiate a custom UIView class with a XIB file in Swift
显示如何将实例化为UITableView或UICollectionView的可重用单元格的答案:Custom UITableViewCell from nib in Swift
答案 1 :(得分:1)
是的,你可以。
创建XIB后,创建一个UIView类,将该类分配给XIB的文件所有者。创建整个XIB容器视图的IBOutlet将它附加到UIView类,调用它就像containerView
在您的XIB自定义类中添加以下内容:
override init(frame: CGRect) {
super.init(frame: frame)
customInit()
}
func customInit() {
Bundle.main.loadNibNamed("YourNIBName", owner: self, options: nil)
addSubview(containerView)
containerView.autoresizingMask = [.flexibleHeigh, .flexibleWidth]
}
现在在任何一个ViewControllers上:
let view = CustomNib(frame: CGRect(x: 0, y:0, width: 150, height: 150)
self.view.addSubview(view)
您也可以通过故事板创建它,只需将自定义xib类分配给任何UIView。
这是一个很好的资源,也可以提供帮助:Swift 3 — Creating a custom view from a xib