ios - 这是我应该创建类(class)的时候吗?

标签 ios swift

我正在努力掌握 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/

相关文章:

ios - UITabBar 项目在 iOS 12.1 上跳回后退导航

ios - 尝试了解 Swift 中使用协议(protocol)的委托(delegate)的实现

ios - 搜索栏和导航栏之间的空白 - Swift

SwiftUI:从 VStack 项目显示工作表在 iOS 14 上不起作用

ios - transitionFromView 不工作

ios - 仅选择行 1 次

ios - 从 Swift 3.0 中的服务器视频 URL 获取缩略图/预览图像

ios - 将大量 GPS 数据异步转换为城市/国家

ios - 从 AVAssetImageGenerator 生成图像在不同时间提供相同的图像副本

ios - 仅在 iOS 10.3.2 中,UIImage 从图库返回空图像路径