Xamarin.iOS更改bordercolor为自定义控件
问题描述:
我想创建一个基于UITextField的自定义控件。其中一个要求是能够在设计时更改控件的边框颜色。Xamarin.iOS更改bordercolor为自定义控件
目前我有下面的代码(见下文)。此时,自定义控件显示在设计器中,我可以将其拖到我的视图上。设计师属性“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;
}
}
任何帮助或指导将不胜感激。
答
只要把
Layer.BorderWidth = 1.0f;
在Draw
方法
谢谢你这么多的作品就像一个魅力! –
我很高兴这对你有帮助...我有同样的问题,使用XCode和Swift自定义控件前段时间,我浪费了几个小时才发现唯一的问题是边框宽度-_-' – Nerkyator