我很想知道如何为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文档的链接。
编辑1 - 这是视图控制器的viewcontroller.swift的动作链接。我只需按住+从故事板拖动按钮到viewcontroller.swift。
@IBAction func a(sender: AnyObject) {
var alertView = UIAlertView();
alertView.addButtonWithTitle("Ok");
alertView.title = "title";
alertView.message = "message";
alertView.show();
}
答案 0 :(得分:5)
您的代码看起来不错,我认为这是一个连接错误。
打开故事板文件,选择File's Owner
(或视图控制器顶部的黄色圆圈),然后单击"连接检查器" (右上角的箭头,即尺寸检查员旁边的箭头),可以立即查看所有商店。查找表示缺少插座的!
。
如果您正在创建自定义UIC课程,我建议您查看IBInspectable
和IBDesignable
,其中有很多关于它们的信息,并且您可以通过以下方式完成相关操作故事板,它并没有改变你的代码。
一些文章:
IBInspectable / IBDesignable - NSHipster
Creating a Custom View That Renders in Interface Builder - Apple
享受:)