UIButton
の高さと幅が等しいと仮定して、UIButton
に円の境界線を与えるには、次のサブクラスのUIButton
があります。しかし、自動レイアウトがその仕事をするとき、私は正しい半径を取得しません。自動レイアウトで正しく動作するようにこのクラスを変更するにはどうすればよいですか?UIButtonサイズを使ってAutolayoutで角の半径を設定するサブクラス
import UIKit
class CircularButton: UIButton {
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
self.layer.cornerRadius = self.bounds.size.height/2
self.layer.borderWidth = 1
}
}
あなたはスクリーンショットを置くことができますか? –
問題は、initが実行されているときにCircularButtonのビューに最終的なself.bounds.sizeが正しく設定されていないことです。なぜならAutolayoutは後で(initの後に)何をするのだろうか。したがって、コーナー半径は必ずしもself.bounds.size.height/2の最終値の半分ではない値になります。これは明らかで、スクリーンショットでは秘密が明らかにならないと思います。 – Dogahe