我在Xamarin Forms项目的一个页面上有一个编辑器,我希望通过添加一点边距来修改占位符文本的位置。
我可以使用iOS Custom渲染器中的“TextContainerInset”为用户键入的文本(但不是占位符)添加边距。
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
this.Control.InputAccessoryView = null;
this.Control.Layer.CornerRadius = 10;
this.Control.Layer.BorderColor = UIColor.LightGray.CGColor;
this.Control.Layer.BorderWidth = (nfloat)0.5;
this.Control.TextContainerInset = new UIEdgeInsets(15,15,15,15);
}
但是,此插入不适用于占位符位置。
有没有办法使用自定义渲染器移动占位符的位置?
2条答案
按热度按时间wlp8pajw1#
您可以设置如下填充:
编辑器的工作范围:
在框架中扭曲编辑器并设置填充,如下所示:
klsxnrf12#
基础UITextView不实现Placeholder。但是,如果查看从UITextView派生的EditorRenderer代码,就会发现Xamarin已在此处实现了Placeholder。
通过使用反射,我可以获得一个指向UILabel _placeholderLabel的指针,但我无法移动它。
如果有人能帮我移动UILabel,我相信我们就有了答案!