我有一个Xamarin Forms和Android的条目,默认情况下显示下划线,当我在iOS上测试时,它总是带有这样的矩形:
我希望它就像在Android中一样:
我使用自定义渲染,我指定我想要一个下划线,但它仍然显示在一个矩形中。这段代码不起作用:
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;
}
}
}
但是,不知道为什么以前的代码不起作用,它应该很简单。有什么想法吗?
答案 0 :(得分:0)
https://developer.xamarin.com/api/type/UIKit.UITextBorderStyle/
UITextBorderStyle
的枚举值为Bezel
,Line
,None
和RoundedRect
。所有这些(None
除外)只是简单地描述围绕整个UITextView
的边框样式,因此Line
值并不意味着单行,它意味着一个实体围绕整个视图的线矩形,而不是边框或圆角矩形。