是的UILabel插图效果可能吗? [重复]

问题描述 投票:6回答:4

这个问题已经在这里有一个答案:

我给边界的UILabel与

Label.text = lbltext;
Label.layer.borderColor = [[UIColor grayColor] CGColor];
Label.layer.borderWidth = 2;

但有文字和边框之间没有空格。 所以,我怎么可以设置在我的标签一样的UIButton插图的效果呢?

iphone xcode4 uilabel
4个回答
20
投票

把标签在容器视图和边框应用到容器。


18
投票

你也可以继承的UILabel,并覆盖了几个方法:

第一个给你圆角和边框。您可以根据需要调整边框的宽度,颜色等。

- (void)drawRect:(CGRect)rect
{
    self.layer.cornerRadius = 4.0;
    self.layer.borderWidth = 1;

    [super drawRect:rect];
}

第二,您可以指定插图的标签文本放置在左边框的路程。

- (void) drawTextInRect:(CGRect)rect
{   
    UIEdgeInsets insets = {0,5,0,5};

    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}

1
投票

另外,在不使用的标签,你可以使用NSString方法sizeWithFont:forWidth:lineBreakMode:,它返回文本的大小。然后,你可以调用NSString drawInRect:withFont:lineBreakMode:方法,你的RECT是从sizeWithFont方法获得的一个,增加了所需的保证金。


1
投票

您还可以在文本的一个非常简单的解决方案添加一个空格:

ObjC代码(由s1m0n为注释添加)

[label setText:[NSString stringWithFormat:@" %@ ", text]]; 

MonoTouch的(C#)代码:

Label.text = " "+lbltext;

@Downvoting:如果你反对投票,显示至少一定程度上给予的理由让我们大家了解为什么这是一个坏的解决方案。虽然这肯定是不适用于所有情况的通用解决方案,它可能在某些情况下,一个非常简单的解决方案。由于边框按钮中创建,文本被“贴”到边界(或者甚至有重叠),并添加一个空格可以很容易地解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.