通过扩展UIButton类,使用Swift创建自定义按钮

时间:2015-09-14 13:09:24

标签: ios swift class uibutton extend

我正在学习Swift,我有一个基本的问题。我不想使用故事板,我想创建一个带代码的按钮。目前,我用这样编码我的按钮:

A filename cannot contain any of the following characters:
    \ / : * ? " < > | 

这很有效,但我正在寻找一些略有不同的东西。那就是:我想创建一个类,我想至少传递图像名称,按钮必须调用的方法和框架。此外,我想在我想要的时候在我的ViewController中实例化按钮。

我在这里发现了很多帖子,但没有帖子真有用(有些代码不起作用)。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

enum SPBarButtonTypes {
    case openDrawer
    case loginInfo
}

class SPBarButtonFactory: NSObject {

    class func createBarButtonItemOfType (buttonType: SPBarButtonTypes, withTarget buttonTarget: AnyObject, andAction buttonAction: Selector) -> UIBarButtonItem {
        var returnButton: UIBarButtonItem = UIBarButtonItem()
        returnButton.target = buttonTarget
        returnButton.action = buttonAction

        switch buttonType {
            case .openDrawer:
                returnButton.image = UIImage(named: "ic_menu")
            case .loginInfo:
                returnButton.image = UIImage(named: "ic_info_outline")
        default: NSLog("Wrong BarButton type")
        }

        return returnButton
    }

}

添加以改善评论

它就像一个嵌套在另一个类中的类“接缝”,但它确实是Swifts声明一个类方法的方法....

此行声明一个名为SPBarButtonFactory

的类
class SPBarButtonFactory...

此行声明了SPBarButtonFactory

的类方法
class func createBarButtonItemOfType...