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

나는 이것을 가지고있다.이리아직 시도하지 않았다.


최근 질문