将控件的按钮初始化代码放在哪里。它在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代码放在函数中吗? 我从哪里调用函数?
答案 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