2015-09-06 82 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