Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin.iOS中具有设计时属性的自定义控件/UIView_C#_Iphone_Xamarin_Uiview_Xamarin.ios - Fatal编程技术网

C# Xamarin.iOS中具有设计时属性的自定义控件/UIView

C# Xamarin.iOS中具有设计时属性的自定义控件/UIView,c#,iphone,xamarin,uiview,xamarin.ios,C#,Iphone,Xamarin,Uiview,Xamarin.ios,我正在为iOS应用程序创建一个用户界面,我正在寻找创建可重用自定义控件的正确方法。我在运行应用程序时通常都能正常工作,但在设计时设置“导出”属性在设计器中没有明显效果。我认为我在做一些根本错误的事情,所以也许有人能给我一些指导 我在做什么: 我已经创建了一个子类UIControl 在构造函数中,我调用Initialize方法 在Initialize方法中,我添加了几个子视图和约束,以便在我的控制范围内对它们进行布局 下面是一些掏空的代码,显示了上述内容: [Register("Range

我正在为iOS应用程序创建一个用户界面,我正在寻找创建可重用自定义控件的正确方法。我在运行应用程序时通常都能正常工作,但在设计时设置“导出”属性在设计器中没有明显效果。我认为我在做一些根本错误的事情,所以也许有人能给我一些指导

我在做什么:

  • 我已经创建了一个子类
    UIControl
  • 在构造函数中,我调用
    Initialize
    方法
  • Initialize
    方法中,我添加了几个子视图和约束,以便在我的控制范围内对它们进行布局
下面是一些掏空的代码,显示了上述内容:

  [Register("RangedValueSelector"), DesignTimeVisible(true)]
public sealed class RangedValueSelector : UIControl
{  
    public RangedValueSelector(IntPtr p)
            : base(p)
    {
        Initialize();
    }

    public RangedValueSelector()
    {
        Initialize();
    }

    public int HorizontalButtonSpacing
    {
        get { return _horizontalButtonSpacing; }
        set
        {
            _horizontalButtonSpacing = value;
        }
    }


    [Export("LabelBoxVerticalInset"), Browsable(true)]
    public int LabelBoxVerticalInset
    {
        get
        {
            return _labelBoxVerticalInset;
        }

        set
        {
            _labelBoxVerticalInset = value;
        }
    }

      private void Initialize()
    {
        //Code that creates and add Subviews
        //Code that creates and add the required constraints, some of which should depend on the design time properties
    }
}
因此,如果我通过设计器设置导出的属性,该控件工作得非常好,但是它们不会在设计器中立即生效


建议使用什么方法来设置可更改约束值的设计时可设置属性?我希望避免每次代码中或设计器中有人设置属性时都必须重新创建所有子视图。

您缺少设计器使用的带矩形的构造函数

公共范围值选择器(矩形边界):基(边界){}


其余的似乎是正确的。

您缺少设计器使用的带矩形的构造函数

公共范围值选择器(矩形边界):基(边界){}

其余的似乎是正确的