2016-12-06 7 views
0

UITextFieldに基づいてカスタムコントロールを作成しようとしています。要件の1つは、デザイン時にコントロールの境界線の色を変更できることです。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; 
    } 
} 

ご迷惑をおかけして申し訳ございません。

答えて

1

ちょうどDraw方法

+0

Layer.BorderWidth = 1.0f; 

を置くあなたの魅力のようなので、多くの作品をありがとうございました! –

+0

これはあなたを助けてくれてうれしいです...私はXCodeとSwiftでカスタムコントロールを作っていたのと同じ問題を抱えていましたが、唯一の問題は境界線の幅であることが分かりました。 – Nerkyator

関連する問題