我正在努力掌握 Swift 并需要一些建议...
我有一个存在于多个屏幕上的 UIView;具体来说,它是一个使用许多元素/参数来正确设置样式的 Logo ,即阴影、形状、图像等。
对于我的第一个 View Controller ,我将其设置为从 viewDidLoad 函数调用的函数。然后在我的第二个 View Controller 中我有相同的 Logo ...这是我的问题,
我应该从 Storyboard 中加载第一个 View Controller ,然后在第二个 View Controller 中引用该函数,还是应该让 Logo 成为任何一个 View Controller 都可以引用的类?我的直觉说它应该是一个类......
提前致谢
最佳答案
对于可重用的 View ,您将创建一个 XIB,您可以在其中设计 View 以及一个 View Controller 类,您可以在其中实例化 xib,如下所示:
class ReusableView: UIView {
override func awakeFromNib() {
super.awakeFromNib()
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "ReusableView", bundle: bundle)
if let view = nib.instantiate(withOwner: self, options: nil).first as? UIView {
view.frame = bounds
addSubview(view)
}
}
}
在您的 View Controller 中,您只需在所需位置放置一个占位符 UIView,并将其自定义类型设置为 ReusableView
。通过将此 View 的导出连接到您的 View Controller ,您可以访问 View 的属性。
请注意,您必须将 XIB 中的 Custom View 属性设置为 UIView,并将 File's Owner 设置为 ReusableView
。否则,您将创建一个无限循环。
关于ios - 这是我应该创建类(class)的时候吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565903/