有没有办法使用自定义渲染器向标签添加填充?我知道您可以通过在标签周围添加内容视图并向内容视图添加填充来作弊;但我想保持 UI 更干净,而不必添加额外的元素。
为了清楚起见,我不想要边距 - 换句话说,如果我向标签添加背景颜色,您应该会看到文本和标签背景之间的填充,如下所示:
有没有办法使用自定义渲染器向标签添加填充?我知道您可以通过在标签周围添加内容视图并向内容视图添加填充来作弊;但我想保持 UI 更干净,而不必添加额外的元素。
为了清楚起见,我不想要边距 - 换句话说,如果我向标签添加背景颜色,您应该会看到文本和标签背景之间的填充,如下所示:
你有没有尝试过这样的事情:
namespace CustomFinder.iOS.Renderers
{
public class DataLabelRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
if (Control == null)
{
SetNativeControl(new TagUiLabel());
}
base.OnElementChanged(e);
}
}
public class TagUiLabel : UILabel
{
private UIEdgeInsets EdgeInsets { get; set; }
public TagUiLabel()
{
EdgeInsets = new UIEdgeInsets(0, 3, 0, 3);
}
public override void DrawText(CoreGraphics.CGRect rect)
{
base.DrawText(EdgeInsets.InsetRect(rect));
}
}
}
我有这个从这里 还没试过。