回答受付が終了しました

SWIFTで5つのボタンの形状を次のようにしていますが、簡素化は可能でしょうか?

SWIFTで5つのボタンの形状を次のようにしていますが、簡素化は可能でしょうか? 「現状」 button01.layer.cornerRadius = 10 button02.layer.cornerRadius = 10 button03.layer.cornerRadius = 10 button04.layer.cornerRadius = 10 button05.layer.cornerRadius = 10 「変更後?」 例えば配列を利用するなどで、同じ動作をするボタンの処理を簡素化できないでしょうか? buttonXX = [button01, button02, button03, button04, button05] for i in 0...4 { buttonXX.layer.cornerRadius = 10 }

iOS開発 | プログラミング21閲覧xmlns="http://www.w3.org/2000/svg">50

回答(1件)

0

一般的な回答ですと、UIButtonのサブクラスを作って、角丸形状のボタンにする、ということになります。 Storyboardの機能を加味した、実践的な回答は、こうなります。 @IBDesignable class RoundButton: UIButton { @IBInspectable var radius: CGFloat { get { return self.layer.cornerRadius } set { self.layer.cornerRadius = newValue } } } @IBInspectableという指示子をつけたクラスのプロパティは、下図のように、XcodeのAttributes Inspectorに項目が追加され、Storyboard上で編集可能になります。 @IBDesignableという指示子をつけたクラスは、設定が視覚にダイレクトに反映されます。

画像

回答ありがとうございます。 質問が悪くて申し訳ございませんでしたが、質問の意図はStorybordによる設定の簡易化ではなく、類似する複数のボタンに同一処理を実施するために、それぞれのボタンごとに処理を記載すると構文が膨大になるため、ループなどで構文を短くしたいと思っています。 ここでは、button01からbutton05のIDをbuttonXXとして、どのようにまとめたら良いのかが不明でしたが、swift初心者なので、そもそもこのようなことをする必要がないのかもしれません。 お手数おかけしますが、ご存知でしょうか?