如何限制UILabel文本长度 - IOS

时间:2013-05-04 05:37:57

标签: iphone ios objective-c cocoa-touch uilabel

是否可以限制UILabel的文本长度..我知道我可以限制字符串,无论我分配给标签,但我只需要知道......有没有可能在UILabel级别中执行此操作?< / p>

在我的情况下,我只想在UILabel中显示10个字符..

5 个答案:

答案 0 :(得分:8)

我通过在viewDidLoad中添加一个通知来解决这个问题:监听长度超过一个值的时间:

- (void)limitLabelLength {

    if ([self.categoryField.text length] > 15) {
        // User cannot type more than 15 characters
        self.categoryField.text = [self.categoryField.text substringToIndex:15];
    }

}

答案 1 :(得分:2)

是的,你可以使用:

  your_text = [your_text substringToIndex:10];
    your_label.text = your_text;

希望它对你有所帮助。

答案 2 :(得分:2)

NSString *string=@"Your Text to be shown";

CGSize textSize=[string sizeWithFont:[UIFont fontWithName:@"Your Font Name"
                                                     size:@"Your Font Size (in float)"]
                                        constrainedToSize:CGSizeMake(100,50)
                                            lineBreakMode:NSLineBreakByTruncatingTail];

UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 50,textSize.width, textSize.height)];
[myLabel setLineBreakMode:NSLineBreakByTruncatingTail];
[myLabel setText:string];

进一步通过更改constrainedToSize的值:您可以修复UILabel的最大大小

答案 3 :(得分:1)

NSString *temp = your string;
if ([temp length] > 10) {
    NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
    temp = [temp substringWithRange:range];

}
coverView.label2.text = temp;

答案 4 :(得分:0)

我看不出任何直接的方法来实现这一目标。但是我们可以做一些事情,让UILabel@interface UILabel(AdjustSize) - (void) setText:(NSString *)text withLimit : (int) limit; @end @implementation UILabel(AdjustSize) - (void) setText:(NSString *)text withLimit : (int) limit{ text = [text substringToIndex:limit]; [self setText:text]; } @end

UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectZero];
[lbl setText:@"Hello Newbee how are you?" withLimit:10];
NSLog(@"lbl.text = %@", lbl.text);

您可以在您想要这样做的类中创建它(或者在单独的扩展类中创建它并导入您想要此功能的地方);

现在使用以下方式:

{{1}}

这是日志:

  

2013-05-09 15:43:11.077 FreakyLabel [5925:11303] lbl.text = Hello Newb