2013-05-04 176 views
1

是否有可能限制文本的長度爲UILabel ..我知道我可以限制字符串無論我分配標籤,但我只需要知道...是否有任何可能性在UILabel級別做到這一點?如何限制UILabel文本長度 - IOS

在我來說,我只是想只顯示10個字符的UILabel ..

+0

你可以嘗試'[labelText substringToIndex:10];' – Anupdas 2013-05-04 05:40:05

+0

你不能直接告訴標籤只顯示10個字符,我知道下面的答案不是你要求的,但他們是唯一的可能性來限制字符串顯示標籤。 – HAS 2013-05-04 15:58:24

回答

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

} 
coverView.label2.text = temp; 
2

是的,你可以使用:

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

希望它可以幫助你。此外,通過改變constrainedToSize的價值

2
NSString *[email protected]"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]; 

:您可以修復的UILabel

的最大尺寸
+0

它可能會起作用,但它會將整個標籤大小縮減爲其字符串長度,在我的情況下,我在標籤的右端添加了一些視圖,但不應該受到干擾,因此我只需要限制文本而不是整個標籤。 – Newbee 2013-05-04 05:48:30

0

我看不到任何直接的方式來實現這一目標。但是,我們可以做一些事情,讓我們做一個categoryUILabel

@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); 

這裏是日誌:

2013年5月9日15:43:11.077 FreakyLabel [5925:11303] lbl.text =你好福利局

+0

請更新我與downvote的原因。 – rptwsthi 2014-07-03 15:28:18

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

你的代碼爲我工作:) – 2015-09-26 09:13:01

+0

太棒了!如果你還沒有做過,記得投票答覆。 – 2015-12-15 09:02:41

+0

是的,已經完成 – 2015-12-15 09:42:49