Xamarin.iOS:创建一个带有附加对象的自定义按钮

时间:2016-04-01 20:25:37

标签: ios xamarin xamarin.ios storyboard

在我的Xamarin.iOS应用程序中,有许多按钮具有相同的方案,但与标准的UIButton不同。我为按钮创建了一个类,因为大多数功能都相同,但是例如textcolor或backgroundcolor是不同的。

那么如何才能在故事板中添加关于任何按钮的额外信息? 我怎样才能在代码中对它做出反应?

1 个答案:

答案 0 :(得分:3)

您可以使用DesignTimeVisibleRegister属性

为设计师显示自定义元素
[Register ("CustomButton"), DesignTimeVisible (true)]
public class CustomButton: UIButton {

    [Export ("CustomProperty "), Browsable (true)]
    public int CustomProperty {get; set;}

    public CustomButton(IntPtr handle) : base (handle) { }

    public CustomButton()
    {
        // Called when created from code.
        Initialize ();
    }

    public override void AwakeFromNib ()
    {
        // Called when loaded from xib or storyboard.
        Initialize ();
    }

    void Initialize ()
    {
        // Common initialization code here.
        CustomProperty = 0xB00B5;
    }
}

对于您要在Designer中设置的所有属性,您只需要添加ExportBrowsable (true)。在Initialize中,您可以设置公共属性的所有值。

它将显示在Custom Components下的工具箱中。您可能需要重建。 enter image description here

可以在Properties窗格

中修改自定义属性

enter image description here

更多信息:https://developer.xamarin.com/guides/ios/user_interface/designer/ios_designable_controls_overview/