实例化 UISegementedControl 的子类时,对类使用未实现的初始化程序“init(frame:)”

2024-05-24

当我尝试使用以下实例时,出现以下错误MySegmentControl在下面的代码中。该错误发生在应用程序启动后。

知道我错过了什么吗?

致命错误:对类“TestingSubclassing.MySegmentControl”使用未实现的初始化程序“init(frame:)”

UISegmentedControl 的子类

导入 UIKit

class MySegmentControl: UISegmentedControl {

    init(actionName: Selector) {
        let discountItems = ["One" , "Two"]
        super.init(items: discountItems)

        self.selectedSegmentIndex = 0

        self.layer.cornerRadius = 5.0
        self.backgroundColor = UIColor.red
        self.layer.borderWidth = 1
        self.layer.borderColor = UIColor.blue.cgColor

        self.addTarget(self, action: actionName, for: .valueChanged)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

视图控制器

import UIKit

class ViewController: UIViewController {

    let segmentOne: MySegmentControl = {
        let segment1 = MySegmentControl(actionName:  #selector(segmentAction))
        return segment1
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(segmentOne)
    }

    @objc func segmentAction (sender: UISegmentedControl) {
        print("segmentAction")
    }
}

你可以打电话super.init(frame并插入段manually.

并且你必须添加一个target参数自定义init(actionName method.

class MySegmentControl: UISegmentedControl {

    init(actionName: Selector, target: Any?) {
        super.init(frame: .zero)

        insertSegment(withTitle: "Two", at: 0, animated: false)
        insertSegment(withTitle: "One", at: 0, animated: false)
        self.selectedSegmentIndex = 0

        self.layer.cornerRadius = 5.0
        self.backgroundColor = UIColor.red
        self.layer.borderWidth = 1
        self.layer.borderColor = UIColor.blue.cgColor

        self.addTarget(target, action: actionName, for: .valueChanged)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实例化 UISegementedControl 的子类时,对类使用未实现的初始化程序“init(frame:)” 的相关文章

随机推荐

  • 获取 SQL 表上的某些百分位值

    假设我有一个表 其中存储用户 他们拥有的红球数量 球总数 蓝色 黄色 其他颜色等 以及红球与球总数的比率 架构如下所示 user id ratio red balls total balls 1 2 2 10 2 3 6 20 我想根据排序
  • 如何编写一个 SQL 查询来计算每月和每年的行数?

    有谁知道如何查询 vbulletin 数据库来生成每月 每年注册数量的报告 以获得如下结果 MM YYYY Count 01 2001 10 02 2001 12 感谢下面的这些答案 我的最终版本有效如下 SELECT COUNT as R
  • Flex 和 crossdomain.xml

    我想知道将 crossdomain xml 添加到应用程序服务器的根目录是否存在任何安全问题 它可以添加到服务器的任何其他部分吗 您是否知道任何不需要服务器放置此文件的解决方法 谢谢 达米安 通过添加 crossdomain xml 主要的
  • python名称错误名称未定义

    在 python3 中运行此代码时出现错误名称未定义 def main D create empty dictionary for x in open wvtc data txt key name email record x strip
  • +entityForName: nil 不是搜索实体名称“Account”的合法 NSManagedObjectContext 参数

    我尝试了很多选择 但找不到解决这个问题的方法 我创建了一个核心数据文件并将实体命名为帐户 创建了一个名为用户名的字符串属性 然后将实体的类编辑为NSManagedObject 不确定这是否正确 现在 以下代码位于我的 LoginViewCo
  • NGXS 状态大小和性能

    Angular 中类似于 redux 的模式给我留下了深刻的印象 并且我迷上了 NGXS 我将其与 NGRX 和 Akita 进行了比较 但选择了 NGXS 我知道 NGXS 存储应用程序中的所有先前状态 因此如果我有一个非常复杂的 UI
  • Java中的整数缓存[重复]

    这个问题在这里已经有答案了 可能的重复 奇怪的Java拳击 https stackoverflow com questions 3130311 weird java boxing 最近我看到一个演示 其中有以下 Java 代码示例 Inte
  • 读取Python/Pandas中缺少值的空格分隔文件

    我正在尝试使用 panda 中的 read csv 在 Python 中读取空格分隔的文件 它通过指定分隔符 来工作 当列中存在某些缺失值时 就会出现问题 因为它通过将缺失值视为分隔符来忽略缺失值 有办法解决这个问题吗 1600 1141
  • Heroku Toolbelt 在多个帐户之间切换

    我想知道使用 heroku 工具带在 heroku 帐户之间切换的最佳方法是什么 我习惯了拥有一个个人 Heroku 帐户 它是我所有专业 Heroku 应用程序的协作者 问题是 当我想要做出一些会产生财务影响的更改时 例如添加 删除插件
  • 如何在没有 Nexus/Artifactory/etc 的情况下索引 Maven 存储库?

    我为一些开源运行我自己的小 Maven 存储库 我没有专用服务器 所以我使用谷歌代码存储库 https code google com p code cop code source browse repo mvn2repo 部署到文件系统然
  • 创建 lambda 二维数组

    因此 我搜索了几个网站和其他有关此问题的问题 但似乎没有一个答案适合我 我有有效的代码 我的编程导师建议我更改链接if else if改为使用 lambda 表 我询问是否使用某种哈希表 他说仅对 9 个项目使用哈希 真正的程序有 9 个
  • excel公式中可以设置粗体吗?

    格式样本 https i stack imgur com dmtpZ png 这里我想添加文本a1 b1 c1 但是我想boldb1 文字如命令模块会大胆 这个词可以加粗吗 日期格式 https i stack imgur com jF9U
  • 为什么流式数据集会失败并显示“当流式数据帧/数据集上存在流式聚合时不支持完整输出模式...”?

    我使用 Spark 2 2 0 在 Windows 上使用 Spark 结构化流时出现以下错误 有时不支持完整输出模式streaming aggregations on streaming DataFrames DataSets没有wate
  • 如何创建应用内购买以从免费版本升级到付费版本android

    我的应用程序有两个版本 付费版 免费版 现在 在免费版本中 我禁用了一些仅在付费版本中可用的功能 所以我想要的是 当用户点击任何这些禁用的功能时 应用内购买窗口应该弹出 并且当交易完成时 应用程序的免费版本应该被付费版本取代 您能告诉我什么
  • 如何计算嵌套对象的深度?

    我有一个嵌套对象的示例数组 let arr id 0 children id 1 children id 2 children id 3 children id 4 children 我需要计算每个对象的深度级别 在所有对象中我也有一个pa
  • %*.*d 在 printf() 中如何工作?

    include
  • 更改服务的启动类型 (Windows)

    我正在寻找更改 Windows 服务启动类型的方法 我发现有两种方法可以做到这一点 通过编辑注册表 http www techbytes ca techbyte74 html Or 通过使用 WMI 类 http www codeproje
  • 在 WordPress 中使用 jquery 日期选择器

    我想要在我的 WordPress 模板页面的表单中使用日期选择器 但它不起作用 这是我的子主题functions php的代码 function modify jquery if is admin comment out the next
  • 在 mutate pipeline 中按组获取唯一 ID [重复]

    这个问题在这里已经有答案了 自从新的 dplyr v1 0 0 更新发布以来 我注意到该功能group indices 有 已弃用 我在工作中经常使用这个功能 并且我喜欢在mutate 例如使用dplyr v0 8 3我能够非常轻松地做这样
  • 实例化 UISegementedControl 的子类时,对类使用未实现的初始化程序“init(frame:)”

    当我尝试使用以下实例时 出现以下错误MySegmentControl在下面的代码中 该错误发生在应用程序启动后 知道我错过了什么吗 致命错误 对类 TestingSubclassing MySegmentControl 使用未实现的初始化程