0
プログラミング指向のプログラミングを学びたい。そして、StartButton
とStopButton
のサブクラスはどちらもちょうどRoundable
プロトコルに準拠しているので、それらの内部には丸みのあるレイヤーがあります。プロトコルのアプローチでそれをする迅速にプロトコル指向の方法でUIButtonサブクラスにレイヤーを追加する方法は?
var backgroundLayer: CAShapeLayer = CAShapeLayer()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
backgroundLayer.fillColor = Colors.Background.button.cgColor
backgroundLayer.rasterizationScale = 2.0 * UIScreen.main.scale
backgroundLayer.shouldRasterize = true
layer.addSublayer(backgroundLayer)
}
override func layoutSubviews() {
super.layoutSubviews()
backgroundLayer.path = UIBezierPath(ovalIn: self.bounds).cgPath
}
いただきました最善の方法:
今の私のスタートボタンサブクラスは、このようになりますか?
これの例がありますか? backgroundLayerはボタンの初期化時にどのように追加できますか? –
実際には、シェイプを実装したUIButtonサブクラスを作成し、その上から 'StartButton'と' StopButton'を継承する方が理にかなっています。プロトコルは他のオブジェクトに見えるビヘイビアを記述するためのものですが、丸みのある形状は内部実装の詳細です。だから、プロトコルを使って練習するのは良い事例ではありません。 – Uncommon
これはありがとうございます。私はいくつかのより適切なケースでプロトコルを試してみます。 –