Xamarin.iOS 更改自定义控件的边框颜色

Xamarin.iOS change bordercolor for custom control

我正在尝试创建一个基于 UITextField 的自定义控件。要求之一是能够在设计时更改控件的边框颜色。

目前我有以下代码(见下文)。此时自定义控件出现在设计器中,我可以将它拖到我的视图上。设计器属性"BorderColor"也在设计器中显示我可以select一个颜色。然而,控件本身的边框颜色并没有改变(只有 属性 值发生变化,但控件的边框保持黑色)。

[Register("RidderTextField"), DesignTimeVisible(true)]
public class RidderTextField
    : UITextField
{
    private UIColor _borderColor = UIColor.Orange;

    public RidderTextField(IntPtr handle) : base(handle) { }
    public RidderTextField(RectangleF frame) : base(frame) { }
    public RidderTextField()
    {
        Initialize();
    }

    [Export("BorderColor"), Browsable(true)]
    public UIColor BorderColor
    {
        get { return _borderColor; }
        set
        {
            _borderColor = value;
            SetNeedsDisplay();
        }
    }

    public override void AwakeFromNib()
    {
        base.AwakeFromNib();

        Initialize();
    }

    private void Initialize()
    {
        BackgroundColor = UIColor.White;
        BorderStyle = UITextBorderStyle.Line;
    }

    public override void Draw(CoreGraphics.CGRect rect)
    {
        base.Draw(rect);

        Layer.BorderColor = BorderColor.CGColor;
    }
}

如有任何帮助或指导,我们将不胜感激。

就放

Layer.BorderWidth = 1.0f;

Draw方法中