使用特定的UIButtonType子类化UIButton

使用特定的UIButtonType子类化UIButton

问题描述:

有没有办法将子类UIButton指定为UIButtonType使用特定的UIButtonType子类化UIButton

我想在设计器中使用我的按钮类,并设置类型。

+0

你可以继承它里面和AwakeFromNib()方法,你可以设置默认的类型。但是据我所知,如果我错了,纠正我,没有真正的方法来在Designer中使用该按钮,期望你看到默认的按钮并设置类。但是如果你想自己绘制并在设计器中显示,那么没有办法 –

+0

嗨,我的回答是否可以帮助你? –

+0

'ButtonType'是只读属性,所以我不认为你可以设置它。关于在设计器中使用,我的意思是像你创建自定义按钮类,然后在设计器中分配该类到你的按钮。 – Naomak

由于UIButtonType是只读属性,因此无法执行此操作。

只有两个场景中的子类UIButton

  1. 创建的UIButton的子类,创建一个公共的方法来包装它的初始方法。

    public class MyButton : UIButton 
    { 
        public static MyButton CreateButton() 
        { 
         return UIButton.FromType(UIButtonType.Custom) as MyButton; 
        } 
    } 
    

    用法:

    MyButton button = MyButton.CreateButton(); 
    

    您只能使用它的代码没有设计这样

  2. 从设计师创建一个按钮,并重新命名它的类 enter image description here

    它会自动生成名为CustomButton的UIButton的子类文件夹,并且可以将其分配给设计器中的其他按钮。

    enter image description here

    但正如我上面提到的,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

+0

感谢您的好回答。是的,我也发现了两种可能性。我只是想知道,如果还有其他的方式。我想用你在第二个答案中描述的方式使用它,很遗憾你不能这样做:/ – Naomak