UIButtonType
を指定してUIButton
をサブクラス化する方法はありますか?特定のUIButtonTypeを使用してUIButtonをサブクラス化する
タイプが既に設定されているデザイナーでボタンクラスを使用したいと思います。
UIButtonType
を指定してUIButton
をサブクラス化する方法はありますか?特定のUIButtonTypeを使用してUIButtonをサブクラス化する
タイプが既に設定されているデザイナーでボタンクラスを使用したいと思います。
UIButtonType
は読み取り専用プロパティなので、これを行うことはできません。 UIButton
をサブクラス化する
2つだけのシナリオ:
UIbuttonのサブクラスを作成し、それが最初の方法ですラップするパブリックメソッドを作成します。
public class MyButton : UIButton
{
public static MyButton CreateButton()
{
return UIButton.FromType(UIButtonType.Custom) as MyButton;
}
}
使用法:あなたが唯一のデザイナーからボタンを作成し、そのクラス
の名前を変更
このようにコードではありませんデザイナーにそれを使用することができます
MyButton button = MyButton.CreateButton();
それはあなたのアプリでCustomButtonという名前のUIButtonのサブクラスを自動的に生成しますデザイナーの他のボタンに割り当てることができます。
しかし、私は前述したように、UIButtonType
は、それが設定されていたら、それを変更する方法読み取り専用のプロパティではありません。
public partial class CustomButton : UIButton
{
public CustomButton (IntPtr handle) : base (handle)
{
this.ButtonType = UIButtonType.Custom; //incorrect , read-only
this.Font = UIFont.SystemFontOfSize(10); //correct, read-write
}
}
RE:Change UIButton type in subclass if button created from storyboard
素敵な答えをありがとう。ええ、私は両方の可能性も見つけました。もしかすると別のやり方があるのではないかと思っていただけです。私はあなたが2番目の答えで説明したようにそれを使用したい、それはあなたがそれのように行うことはできません悲しいです: – Naomak
あなたはそれをサブクラス化でき、AwakeFromNib()メソッドの内部では、デフォルトのためのタイプを設定することができます。しかし、私が知っている通り、私が間違っていれば私を修正してください、デザイナでそのボタンを使用する実際の方法はありません、あなたがデフォルトのボタンを見て、クラスを設定することを期待します。しかし、あなた自身でそれを描き、デザイナーには、道がないことを示したい場合は –
こんにちは、私の答えはあなたを助けましたか? –
'ButtonType'は読み取り専用のプロパティなので、設定できないと思います。デザイナでの使用については、カスタムボタンクラスを作成してデザイナでそのクラスをボタンに割り当てることを意味しました。 – Naomak