我试图在iOS上创建一个有界的UILabel。到目前为止,我在SO和其他网站上阅读了很多关于如何做到这一点的内容。但即使我能够使边界工作,我也无法使填充(插入)工作。它可能与我的XCode布局有关,或者我真的不知道......
这里是没有插入的当前结果:
这是生成该代码的代码:
SelectedServiceLabel.Font = Tools.Style.GetFont(Tools.Style.FontStyle.Regular, 15);
SelectedServiceLabel.TextColor = Tools.Style.PrimaryColor;
SelectedServiceLabel.Layer.BorderColor = Tools.Style.PrimaryColor.CGColor;
SelectedServiceLabel.Layer.CornerRadius = 3;
SelectedServiceLabel.Layer.MasksToBounds = true;
SelectedServiceLabel.Layer.BorderWidth = 1;
这里使用insets的结果:
以下是代码:
与上述相同:
(SelectedServiceLabel as UIPaddedLabel).Insets = new UIEdgeInsets(1, 2, 1, 2);
UIPaddedLabel派生自PaddedLabel:
public class PaddedLabel : UILabel
{
public PaddedLabel(IntPtr handle) : base (handle){}
public UIEdgeInsets Insets { get; set; }
public override void DrawText(CGRect rect)
{
base.DrawText(Insets.InsetRect(rect));
}
}
这些实现我从SO的答案中获得。
所以我的问题是......我怎样才能创建一个实际上将文本完全保留在边框内的边界UILabel?我在这里做错了什么?
谢谢!