Xamarin.Forms - 可以使用自定义渲染器向标签添加填充? (IOS)

时间:2016-03-23 13:44:07

标签: label padding xamarin.forms custom-renderer

有没有办法使用自定义渲染器向标签添加填充?我知道你可以通过在标签周围添加内容视图并在内容视图中添加填充来作弊;但是我希望保持UI更清洁,而不必添加额外的元素。

为了清楚起见,我不想要一个边距 - 换句话说,如果我在标签上添加背景颜色,你应该看到文本和标签背景之间的填充,如下所示: / p>

enter image description here

1 个答案:

答案 0 :(得分:3)

你有没有试过这样的事情:

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));
        }
    }
}

我来自here 尚未尝试过。