KAinone
@KAinone

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SnapKit レイアウト サイズ取得

Q&A

Closed

解決したいこと

CustomCellにてUIButtonの角を半円にしたいのですが、レイアウトにSnapKitを使っているため、UIButtonの高さの値(signInButton.frame.height)を取得できません。解決方法を教えて下さい。

発生している問題・エラー

class WelcomeButtonsCell: UITableViewCell {


    let signInButton = UIButton()


    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {

        super.init(style: style, reuseIdentifier: reuseIdentifier)

        setupSignInButton()
    }


    required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)
    }


    func setupSignInButton() {

        signInButton.setTitle("Sign In", for: .normal)
        signInButton.titleLabel?.font = UIFont.systemFont(ofSize: 20)
        signInButton.layer.cornerRadius = signInButton.frame.height / 2
        signInButton.layer.masksToBounds = true

        addSubview(signInButton)

        signInButton.snp.makeConstraints {

            $0.centerX.equalToSuperview()
            $0.width.equalToSuperview().multipliedBy(0.8)
            $0.height.equalToSuperview().multipliedBy(0.1)
            $0.bottom.equalTo(contentView.snp.centerY).offset(-7)
        }

    }

}

該当するソースコード

signInButton.layer.cornerRadius = signInButton.frame.height / 2
0

1Answer

UIView のレイアウトのライフサイクルについて調べてみてください。

0Like

Comments

  1. @KAinone

    Questioner

    お教え頂いた通りライフサイクルについて調べ、initでレイアウトし、layoutSubviews内でframeのサイズを取得することが出来ました。
    ありがとうございました。

Your answer might help someone💌