Iphone 如何限制UILabel文本长度-IOS
是否可以限制UILabel的文本长度。。我知道我可以限制字符串,无论我分配给标签什么,但是我只需要知道。。。是否有可能在UILabel级别执行此操作 在我的例子中,我只想在UILabel中显示10个字符 是的,您可以使用:Iphone 如何限制UILabel文本长度-IOS,iphone,ios,objective-c,cocoa-touch,uilabel,Iphone,Ios,Objective C,Cocoa Touch,Uilabel,是否可以限制UILabel的文本长度。。我知道我可以限制字符串,无论我分配给标签什么,但是我只需要知道。。。是否有可能在UILabel级别执行此操作 在我的例子中,我只想在UILabel中显示10个字符 是的,您可以使用: NSString *temp = your string; if ([temp length] > 10) { NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0
NSString *temp = your string;
if ([temp length] > 10) {
NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
temp = [temp substringWithRange:range];
}
coverView.label2.text = temp;
your_text = [your_text substringToIndex:10];
your_label.text = your_text;
希望对你有帮助
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的最大大小我看不到任何直接的方法来实现这一点。但是我们可以做点什么,让我们为
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);
下面是日志:
2013-05-09 15:43:11.077 FreakyLabel[5925:11303]lbl.text=你好,新手
我通过在viewDidLoad:中添加通知修复了此问题,该通知在长度超过某个值时侦听:
- (void)limitLabelLength {
if ([self.categoryField.text length] > 15) {
// User cannot type more than 15 characters
self.categoryField.text = [self.categoryField.text substringToIndex:15];
}
}
你能试试
[labelText substringToIndex:10]
你不能直接告诉标签只显示10个字符,我知道下面的答案不是你想要的,但它们是限制标签显示字符串的唯一可能性。它可能会起作用,但它会将整个标签大小减小到字符串长度,在我的情况下,我在标签的右端添加了一些视图,这不应该被打扰,所以我只需要限制文本,而不是整个标签。太好了!如果你还没有做过,记得投赞成票。