我正在学习 Swift,我有一个基本问题。我不想使用 Storyboard ,我想用代码创建一个按钮。目前,我这样编写按钮:
let button1: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
button1.setImage(UIImage(named: "myImage.png"), forState: UIControlState.Normal)
button1.addTarget(self, action: "myMethod", forControlEvents: UIControlEvents.TouchUpInside)
button1.frame = CGRectMake(0, 0, 25, 25) // then I add this button to a navigation control
这可行,但我正在寻找稍微不同的东西。那就是:我想创建一个类,我想至少传递图像名称、按钮必须调用的方法和框架。此外,我想随时实例化 ViewController 中的按钮。
我在这里找到了很多帖子,但没有一个帖子真正有用(有些代码不起作用)。
你能帮我吗?
最佳答案
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
}
}
添加了改进评论
它只是像嵌套在另一个类中的类一样“接缝”,但这确实是 Swift 声明类方法的方式......
这一行声明了一个名为 SPBarButtonFactory 的类
class SPBarButtonFactory...
这一行声明了 SPBarButtonFactory 的类方法
class func createBarButtonItemOfType...
关于ios - 通过扩展 UIButton 类,使用 Swift 创建自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565698/