自定义UIButton类swift

rj2*_*700 11 swift

我很好奇如何为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

    }

}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

对于密钥aButton,此类不符合密钥值编码

我认为这个过程在指南中很简单,但是我错过了任何额外的步骤吗?请让我知道,谢谢!

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

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

编辑1 - 这是视图控制器的viewcontroller.swift的动作链接.我只需按住+从故事板拖动按钮到viewcontroller.swift.

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

MrH*_*aze 7

你的代码看起来不错,我认为这是一个连接错误.打开故事板文件,选择File's Owner(或视图控制器顶部的黄色圆圈),然后单击"连接检查器"(右上角的箭头,即尺寸检查器旁边的箭头),立即查看所有插座.寻找!表明缺少出口的s.

如果您正在创建自定义UIClasses,我建议您查看IBInspectables和IBDesignables,它们有很多关于它们的内容,并使您能够通过故事板进行相当多的操作,并且它不会更改您的代码.

一些文章:

IBInspectable/IBDesignable - NSHipster

创建在Interface Builder中呈现的自定义视图 - Apple

请享用 :)