问题
I'm a beginner in iOS/Swift and trying to create a simple application without Storyboard.
I created a UIButton
extension and I would like to add a simple button to my view (constraints will be set later).
Unfortunately the button is not visible.
I would appreciate if somebody helps me.
Thank you!
--- Buttons.swift ---
extension UIButton {
func createRectangleButton(buttonPositionX: Double, buttonPositionY: Double ,buttonWidth: Double, buttonHeight: Double, buttonTilte: String) {
let button = UIButton(type: .system) as UIButton
button.frame = CGRect(x: buttonPositionX, y: buttonPositionY, width: buttonWidth, height: buttonHeight)
button.setTitle(buttonTilte, for: .normal)
button.backgroundColor = COLOR_WHITE
button.tintColor = COLOR_BLACK
}
}
--- InitialViewController.swift ---
import UIKit
class InitialViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Gradient Layer
view.addGradientBackground(colorTop: COLOR_ROYALRED2, colorBottom: COLOR_ROYALRED1)
// Button
let startButton = UIButton()
startButton.createRectangleButton(buttonPositionX: 50, buttonPositionY: 20, buttonWidth: 200, buttonHeight: 50, buttonTilte: "START")
self.view.addSubview(startButton)
}
}
回答1:
Try this:
extension UIButton {
func createRectangleButton(buttonPositionX: Double, buttonPositionY: Double ,buttonWidth: Double, buttonHeight: Double, buttonTilte: String) {
let button = self // changes made here
button.frame = CGRect(x: buttonPositionX, y: buttonPositionY, width: buttonWidth, height: buttonHeight)
button.setTitle(buttonTilte, for: .normal)
button.backgroundColor = COLOR_WHITE
button.tintColor = COLOR_BLACK
}
}
来源:https://stackoverflow.com/questions/43718510/swift-3-add-uibutton-extension-to-viewcontroller