4

カスタム レンダラーを使用してラベルにパディングを追加する方法はありますか? ラベルの周りにコンテンツ ビューを追加し、コンテンツ ビューにパディングを追加することでごまかすことができることはわかっています。しかし、UI をきれいに保ちたいので、余分な要素を追加する必要はありません。

明確にするために、余白は必要ありません。つまり、ラベルに背景色を追加すると、次のようにテキストとラベルの背景の間にパディングが表示されるはずです。

ここに画像の説明を入力

4

1 に答える 1

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

私はここからこれを持っています が、まだ試していません。

于 2016-07-18T12:56:00.827 に答える