Я пытаюсь создать UILabel
с заполнением в моем приложении Xamarin.iOS. Самое популярное решение в нативных приложениях Objective-C - это переопределение drawTextInRect
:
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
Каким бы простым это ни казалось, я не могу понять, как перевести это на C #. Вот мой лучший удар:
internal class PaddedLabel : UILabel
{
public UIEdgeInsets Insets { get; set; }
public override void DrawText(RectangleF rect)
{
var padded = new RectangleF(rect.X + Insets.Left, rect.Y, rext.Width + Insets.Left + Insets.Right, rect.Height);
base.DrawText(padded);
}
}
Кажется, что это перемещает текст метки, но не меняет размер метки.
Я думаю, что основная проблема в том, что я не могу найти Xamarin-эквивалент UIEdgeInsetsInsetRect
.
Какие-либо предложения?