ボタンを作成するカスタムクラスを作成しようとしています。クラス内のボタンにターゲットを追加するのに問題があります。これは私のコードですSwiftカスタムボタンクラス
class SelectButton{
var button:UIButton = UIButton()
init(button_frame: CGRect, button_title: String, connected: [UIButton]?){
self.button.frame = button_frame
self.button.setTitle(button_title, for: UIControlState.normal)
self.button.addTarget(self, action:#selector(self.buttonPressed), for: .touchUpInside)
}
func construct() -> UIButton {
return self.button
}
@objc func buttonPressed() {
print("Button Clicked")
}
}
問題は私がボタンクリックでアクションを接続できないということです。私のクラスの外で使用されていて、内部では使用されていない場合にはこれが機能
クラスの使い方
let test = SelectButton(button_frame: CGRect(x:50, y:50, width: 250, height:150), button_title: "Test button", connected: nil).construct()
self.view.addSubview(test)
どのようにこのクラスを使用しているから直接
SelectButton
継承を持っていますか?そのコードを表示します。なぜあなたは 'UIButton'をサブクラス化しませんでしたか? – Paulw11'UIButton'をサブクラス化するよりも優れていると思うので私の質問を編集しました – AustinTc
' TestButton'インスタンスへの強い参照を保持しているものは何もありません。サブビューとして追加したため、ボタン自体は保持されるため、まだ表示されていますが、アクションに応答するオブジェクトはなくなりました。本当に 'SelectButton'は' UIButton'をサブクラス化し、 'SelectButton'をサブビューとして追加することができます。 – Paulw11