从代码和Storyboard实例化自定义按钮 - 如何创建init方法

tim*_*one 1 uibutton ios swift

我想创建一个这样的按钮:

import UIKit

class EKLikeButton: UIButton {

  required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.layer.cornerRadius = 5.0;
    self.layer.borderColor = UIColor.redColor().CGColor
    self.layer.borderWidth = 1.5
    self.backgroundColor = UIColor.blueColor()
    self.tintColor = UIColor.whiteColor()

  }
}
Run Code Online (Sandbox Code Playgroud)

但实现它的唯一方法似乎是在Storyboard中设置一个预先存在的按钮.我希望能够做到:

let btn = EKLikeButton()
btn.frame=CGRectMake(10.0, 10.0, 40.0, 40.0)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试上述内容时,我明白了

在调用中缺少参数'coder'的参数

我如何创建一个可以从Swift中的代码或故事板处理的init函数?

Leo*_*Leo 7

这就是我通常做的事情

class EKLikeButton: UIButton {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setUp()

    }
    init(){
        super.init(frame: CGRectZero)
        setUp()
    }
    override init(frame: CGRect) {
        super.init(frame: frame)
        setUp()
    }
    func setUp(){
        self.layer.cornerRadius = 5.0;
        self.layer.borderColor = UIColor.redColor().CGColor
        self.layer.borderWidth = 1.5
        self.backgroundColor = UIColor.blueColor()
        self.tintColor = UIColor.whiteColor()
    }
}
Run Code Online (Sandbox Code Playgroud)