我可以使用UIView(.xib和类)作为许多视图的视图基础示例吗?

时间:2018-04-11 13:52:40

标签: swift xcode uiview interface-builder xib

我已经将UIView设计为带有类的XIB。 我可以使用这个xib,作为其他UIViews的现有示例吗? 所以,我想创建这个UIView一次,然后在应用程序的不同部分使用它。

2 个答案:

答案 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