条目渲染不在iOS Xamarin Forms中添加下划线

时间:2018-03-05 09:48:33

标签: xamarin.forms xamarin.ios

我有一个Xamarin Forms和Android的条目,默认情况下显示下划线,当我在iOS上测试时,它总是带有这样的矩形:

enter image description here

我希望它就像在Android中一样:

enter image description here

我使用自定义渲染,我指定我想要一个下划线,但它仍然显示在一个矩形中。这段代码不起作用:

class MyEntryRenderer : EntryRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {             
            Control.BorderStyle = UITextBorderStyle.Line;                
        }
    }
}

我已用下一个代码解决了这个问题:

class MyEntryRenderer : EntryRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {             
            Control.BorderStyle = UITextBorderStyle.None;

            //Create borders(bottom only)
            CALayer border = new CALayer();
            float width = 2.0f;               
            border.BorderColor = Color.FromHex(ColorConstants.BlueHex).ToCGColor();
            border.Frame = new CGRect( 0, 40, 400, 2.0f);
            border.BorderWidth = width;

            Control.Layer.AddSublayer(border);
            Control.Layer.MasksToBounds = true;
        }
    }
}

但是,不知道为什么以前的代码不起作用,它应该很简单。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

https://developer.xamarin.com/api/type/UIKit.UITextBorderStyle/

UITextBorderStyle的枚举值为BezelLineNoneRoundedRect。所有这些(None除外)只是简单地描述围绕整个UITextView的边框样式,因此Line值并不意味着单行,它意味着一个实体围绕整个视图的线矩形,而不是边框​​或圆角矩形。