4

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

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

enter image description here


  • 私はスタイルやカスタムレンダリングを使って何も見つけることができませんでした。私はあなたのUIを盛り上げたいとは思っていませんが、いくつかの背景が重なるテキストフィールドを持つカスタムコントロールについてはどうでしょうか。本質的には、あなたが避けていたものですが、あなたのUIの面倒なコードはありません。 - Clint Landry

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

私はこれを持っているここにまだ試していない。


  • 素晴らしいソリューション、感謝の男 - Nick Kovalsky

最近の質問