'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 및 테두리와 버튼을 초기화하기 위해서합니다.
뷰 컨트롤러의 수명주기에서 한 번만 호출되는 '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)
}
인터페이스 작성기에서 단추를 만든 경우 이렇게 할 수 있습니다.
@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
}
나는 buttonAdd가 함수이지만 버튼의 Action 함수이므로 버튼을 누를 때까지 치지 않을 것이므로 버튼의 초기화 코드는 어디에 두어야 할까? 그것은 분명히 그 기능 밖에 있어야합니다. 다시 호출이나 함수에 init 코드를 넣어야합니까 ?? 그리고 나에게 명확하지 않은 다른 사실은 재산. 이름 또는 스위프트에있는 그것의 equivelent가 어디에 있는지입니다. 이름 속성이 없으면 어떻게 컨트롤을 전역 적으로 참조 할 수 있습니까? – ot1