Storyboardを利用せず、コードのみで実装しております。
ボタンを押しても、色などの変化が起こりません。
以下、UIButtonのカスタムクラスの作りました
import UIKit class CustomUIButton: UIButton { init(title: String) { super.init(frame: .zero) UIButton(type: .custom) setTitle(title, for: .normal) backgroundColor = #colorLiteral(red: 0.5568627715, green: 0.3529411852, blue: 0.9686274529, alpha: 1) layer.cornerRadius = 5 tintColor = .white setHeight(50) titleLabel?.font = UIFont.boldSystemFont(ofSize: 20) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
以下、コントローラー
private let loginButton: CustomUIButton = { let button = CustomUIButton(title: "loginButton") button.isEnabled = false button.addTarget(self, action: #selector(test), for: .touchUpInside) return button }() @objc func textDidChange(sender: UITextField) { if sender == emailTextField{ viewModel.email = sender.text } else { viewModel.password = sender.text } loginButton.backgroundColor = viewModel.buttonBackgroundColor loginButton.setTitleColor(viewModel.buttonTitleColor, for: .normal) loginButton.isEnabled = viewModel.formIsValid print(viewModel.formIsValid) // trueが返ってくる } @objc func test() { print("push") //ボタンを押すとpushが返ってくる }
addTargetにより、ボタンが有効化されていることは確認しております。
自分では調べても解決できませんでした。
ご教授頂けると嬉しいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/03 09:31