我正在设置a的左边插入/边距,UILabel但找不到这样做的方法.标签有一个背景设置,所以只是改变它的起源不会有效.10px左手边左右插入文本是理想的.
我有一个UILabel我想在顶部和底部添加空间的地方.在约束中使用最小高度我将其修改为:

编辑:要做到这一点,我用过:
override func drawTextInRect(rect: CGRect) {
var insets: UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 10.0, bottom: 0.0, right: 10.0)
super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}
Run Code Online (Sandbox Code Playgroud)
但我要找到一种不同的方法,因为如果我写两行以上的问题是相同的:

我需要创建一个UILabel背景颜色,我想添加一些左边填充,但我在这里找到的每个解决方案似乎都是一个讨厌的黑客.
从iOS 5开始实现这一目标的"标准"方法是什么?
编辑
用于说明我的场景的屏幕截图.-

我正在尝试UILabel在我的Xamarin.iOS应用程序中创建一个填充.本机Objective-C应用程序中最流行的解决方案是重写drawTextInRect:
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,我无法弄清楚如何将其转换为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);
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎会移动标签的文本,但它不会调整标签的大小.
我认为主要问题是我找不到相应的Xamarin UIEdgeInsetsInsetRect.
有什么建议?
我的程序目前有三十个UILabel,可能包含一到三位数字.我想让我的UILabels水平扩展和收缩,因为它们中的数字会改变大小.目前文本正在缩小,UILabels的大小保持不变.
如果只使用xib文件可以做到这一点,那么以编程方式执行此操作会更好,但如果不可能,那么这将是很好的.
谢谢
ios ×5
uilabel ×5
c# ×1
cocoa-touch ×1
iphone ×1
objective-c ×1
padding ×1
uikit ×1
xamarin.ios ×1
xcode ×1