2015-09-06 51 views
8

我有一个标签与文本:Xcode:如何添加边距/填充标签文本?

enter image description here

不过,我希望它有更多的填充(和其边缘是圆润一点如果可能的话)。但是,当我在故事板中拉伸标签以使其看起来有填充时,然后重新启动模拟器时,它不会向其添加填充。

我该怎么做?顺便说一句,我使用的自动布局+目标C

+0

我不知道,因为这有助于我从来没有这样做,但也许它有帮助。 http://stackoverflow.com/questions/3476646/uilabel-text-margin – PeterPan

+0

有没有办法通过故事板做到这一点? – Edmund

回答

9

如果你想走布局约束路线,这可能是适合你的解决方案:

你应该使用一个容器视图,并将标签放在里面。然后为标签添加约束条件,这将相当于填充。

enter image description here

选择标签,然后单击限制面板在故事板文件右下角。

Label's constraints to container view

选中的标签,应用像上面看到的布局约束(请确保您选择,以便约束实际应用的红“线”)。

End result

橙色视图是容器视图。标签就在里面。

2

您可以

yourLabel.frame = CGRectMake(0,0,100,100) 
+2

使用自动布局时,应该编辑约束,而不是帧。 – oltman

2

你需要重写的UILabel的drawRect方法

示例代码添加保证金:

#import "OCPaddedLabel.h" 
#define PAD 10.0f 
#define PAD_VERT 6.0f 

@implementation OCPaddedLabel 

- (void)drawTextInRect:(CGRect)rect { 
    UIEdgeInsets insets = {PAD_VERT, PAD, PAD_VERT, PAD}; 
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)]; 
} 

,如果你想添加圆角,您需要:

label.layer.cornerRadius = 15.0f; 
label.layer.masksToBounds = YES; 
2

您可以从故事板中添加圆角,选择您的UILabel(或任何视图)并转到检查器,在身份检查器部分添加如图所示的值。

enter image description here