ios - 关于自定义 UIKit 对象的概念问题

标签 ios xcode swift uikit

简单的问题:创建自定义版本(比如 UILabel、UIButton 等)以便我可以在多个地方轻松使用它的标准方法是什么?是否只是扩展适当的类:

import UIKit

class FormField: UITextField {

    override init()
    {
        super.init()

      //  borderStyle = UITextBorderStyle.None

    }
}

基本上只是想为某些 UI 对象设置一些默认值,以便在必要时我可以轻松地将它们放入界面中。不太确定如何让它工作。

最佳答案

UILabel 这样的子类是非常罕见的。

最常见的方法是 HAS-A 模式,您可以让 Controller (通常是 UIViewController)为您管理 View 并重用它。或者,您可以创建一个 UIView,其中包含您要自定义的 View ,并为您自定义它(传递需要传递的内容)。

您还可以拥有一个“以这种方式配置我的 View ”功能,您可以在现有标准 View 上调用该功能。我在可重用代码中很少看到这种情况。我的经验是,这些类型的配置函数结果是非常特定于应用程序的,但它们很常见。

UITextField 这样的东西已经有了委托(delegate)方法,自定义它们的一种常见方法是创建一个应用特定行为的可重用委托(delegate)。

这当然取决于您要实现的目标,但是子类化在模式列表中的位置非常靠后,除非它是一个明确设计并记录为子类化的类(如 UIViewUIViewController).

关于ios - 关于自定义 UIKit 对象的概念问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402432/

相关文章:

ios - 启动TestFlight构建需要花费几秒钟(App Store应用很好)

swift - 如何防止 SwiftUI 重新初始化我的包装属性,就像 @StateObject 那样?

Swift 无法定位和读取属性列表 (.plist) 文件

ios - Objectmapper字典到Json swift? swift 2 -> swift 3

ios - 如何使用约束使按钮成为 UITableViewCell 宽度的一半( Storyboard或以编程方式)

ios - Objective C,在堆栈跟踪中不涉及我的应用程序时处理崩溃报告

iphone - 不需要的变量释放(iOS)

xcode - 读取错误..node_modules/react-native/ReactCommon/jsinspector/InspectorInterfaces.cpp'

iOS无线安装内部应用程序

xcode - 代码签名错误 : No provisioning profiles found in xcode 7. 3