我正在尝试基于UITextField创建自定义控件。其中一个要求是能够在设计时更改控件的边框颜色。
目前我有以下代码(见下文)。此时,自定义控件显示在设计器中,我可以将其拖到我的视图上。设计师属性“BorderColor”也在设计师中显示,我可以选择一种颜色。但是控件本身的边框颜色不会改变(只有属性值会改变,但控件的边框会保持黑色)。
[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;
}
}
非常感谢任何帮助或指导。
答案 0 :(得分:2)
刚刚放
Layer.BorderWidth = 1.0f;
Draw
方法中的