Swift 3初始化按钮

时间:2016-12-09 01:12:12

标签: uibutton swift3

将控件的按钮初始化代码放在哪里。它在ViewController.swift中无法正常工作吗?因为我需要立即初始化,而不是按下按钮后。

例如,我想要按钮上的圆角。

@IBAction func buttonAdd(_ sender: AnyObject) {
    let button = buttonAdd!

    button.backgroundColor = UIColor.cyan

    // button.backgroundColor = .clear
    button.layer.cornerRadius = 15
    button.layer.borderWidth = 1
    button.layer.borderColor = UIColor.black.cgColor
}

然而,这个let语句也不会在函数之外工作。 我需要将init代码放在函数中吗? 我从哪里调用函数?

2 个答案:

答案 0 :(得分:1)

' buttonAdd'是一个功能,而不是一个按钮。

试试这段代码。

    if let button = sender as? UIButton
    {
        button.backgroundColor = UIColor.cyan

        // button.backgroundColor = .clear
        button.layer.cornerRadius = 15
        button.layer.borderWidth = 1
        button.layer.borderColor = UIColor.black.cgColor
    }

因此,您希望使用roundedCorner和border来初始化按钮。

有一个' viewDidLoad'在视图控制器的生命周期中只调用一次的函数。 如果您只想做一次,请在' viewDidLoad'功能

    override func viewDidLoad()
    {
        super.viewDidLoad()

        let btn = UIButton(type: .custom)
        btn.frame = .init(x: 100, y: 100, width: 100, height: 30)
        btn.setTitle("Hello", for: .normal)
        btn.backgroundColor = UIColor.cyan
        btn.layer.cornerRadius = 15
        btn.layer.borderColor = UIColor.black.cgColor
        btn.layer.borderWidth = 1

        // you must call this for rounded corner
        btn.layer.masksToBounds = true
        self.view.addSubview(btn)
    }

如果您在Interface Builder中创建了按钮,则可以这样做。

@IBOutlet weak var btn: UIButton!
override func viewDidLoad()
{
    super.viewDidLoad()

    btn.layer.cornerRadius = 15
    btn.layer.borderColor = UIColor.black.cgColor
    btn.layer.borderWidth = 1

    // you must call this for rounded corner
    btn.layer.masksToBounds = true
}

答案 1 :(得分:0)

我找到了我的问题的答案......您将在ViewController.Swift中放置按钮初始化代码...在View Controller自动创建的以下函数中,您必须添加按钮Outlet以及按钮Action。

override func viewDidLoad() {
    super.viewDidLoad()

    let button = buttonAdd!

    button.backgroundColor = UIColor.cyan

  //  button.backgroundColor = .clear
    button.layer.cornerRadius = 10
    button.layer.borderWidth = 1
    button.layer.borderColor = UIColor.black.cgColor