使用特定的UIButtonType对UIButton进行子类化

时间:2017-10-10 12:49:44

标签: xamarin.ios uibutton

有没有办法通过指定UIButton

UIButtonType

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

1 个答案:

答案 0 :(得分:1)

由于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

    它将在您的app文件夹中自动生成名为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