🧯
UIButton.Configurationを使いサイズ指定を忘れたとき、文字は表示されるがサイズが0なのでクリックに反応しない
ハマったので書く。
コード
import UIKit
class ViewController: UIViewController {
lazy var myButton: UIButton = {
var config = UIButton.Configuration.filled()
config.title = "実行"
let button = UIButton(
configuration: config,
primaryAction: UIAction(handler: { _ in
// ボタンがタップされた時の処理
}))
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(myButton)
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
print(myButton.frame.size)
myButton.center = CGPoint(
x: view.frame.size.width / 2.0,
y: view.frame.size.height / 2.0)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
print(myButton.frame.size)
}
}
結果
(0.0, 0.0)
(0.0, 0.0)
画面

サイズ0のものがセンターに配置されて、そこから文字列が(右下か右上に)生えてる状態。
Discussion