【问题标题】:Custom UIButton class swift自定义 UIButton 类 swift
【发布时间】:2016-03-18 21:28:55
【问题描述】:

我很好奇如何为 UI 元素(例如,按钮)创建自定义类?

我已阅读 Apple 开发文档并按照说明进行操作,我的想法是创建一个单独的 UIButton 类文件并将该类文件链接到情节提要上的所有按钮。

这是单独的 UIButton 类代码(名为 buttonz.swift 的文件):

import UIKit

public class buttonz: UIButton {


    required public init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        self.layer.borderWidth = 1
        self.backgroundColor = UIColor.whiteColor()
        self.layer.borderColor = UIColor.blackColor().CGColor

    }

}

在故事板上,我将该特定按钮链接到新的 UIButton 类:

问题是,当我运行模拟器时,它在 debig 控制台中给了我一个错误:

这个类不符合键 aButton 的键值编码

我认为指南中的过程很简单,但我是否遗漏了任何额外的步骤?请告知,谢谢!

作为参考,这里是我用作指南的 Apple 文档的链接。

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson5.html

Edit 1 - 这是视图控制器的 viewcontroller.swift 的操作链接。我只是 ctrl + 将按钮从故事板拖到 viewcontroller.swift 中。

 @IBAction func a(sender: AnyObject) {
        var alertView = UIAlertView();
        alertView.addButtonWithTitle("Ok");
        alertView.title = "title";
        alertView.message = "message";
        alertView.show();
    }

【问题讨论】:

  • 您已尝试将插座连接到接口构建器中的类并将其命名为aButton,但是您尝试将其连接到的类没有该属性。
  • 您是否还创建了一个具有属性aButton 的自定义控制器类?我想你也需要设置你的视图控制器类。
  • 尝试删除public修饰符。
  • 是的,我应该修改问题以添加视图控制器及其类。但是按钮作为视图控制器的 UIViewController 的操作链接,我是否应该将按钮的操作链接也添加到自定义类?
  • @DinoTw 我认为这不会改变什么?

标签: swift


【解决方案1】:

您的代码看起来不错,我认为这是连接错误。 打开你的故事板文件,选择File's Owner(或视图控制器顶部的黄色圆圈)并单击“连接检查器”(右上角的箭头,即尺寸检查器旁边的那个),查看所有一下子。查找!s,它表示缺少插座。

如果您正在创建自定义 UIClass,我建议您查看 IBInspectables 和 IBDesignables,它们有很多相关内容,并且使您能够仅通过故事板做很多事情,但它没有不需要改变你的代码。

一些文章:

IBInspectable / IBDesignable - NSHipster

Creating a Custom View That Renders in Interface Builder - Apple

享受:)

【讨论】:

  • 所以我将同一个按钮的 crtl + 拖动到 viewcontroller 的代码中作为插座,发现 aButton 缺少插座后似乎很好,谢谢!
  • 太棒了!祝你好运与这一切。看看 IBDesignables,它们非常酷。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多