是否可以限制 UILabel 的文本长度。我知道我可以限制我分配给标签的字符串,但是我只需要知道...在 UILabel 级别有没有可能做到这一点?
就我而言,我只想在 UILabel 中显示 10 个字符。
是否可以限制 UILabel 的文本长度。我知道我可以限制我分配给标签的字符串,但是我只需要知道...在 UILabel 级别有没有可能做到这一点?
就我而言,我只想在 UILabel 中显示 10 个字符。
我通过在 viewDidLoad: 中添加一个通知来解决这个问题:当长度超过一个值时进行监听:
- (void)limitLabelLength {
if ([self.categoryField.text length] > 15) {
// User cannot type more than 15 characters
self.categoryField.text = [self.categoryField.text substringToIndex:15];
}
}
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];
Further by changing the value of constrainedToSize: you can fix the maximum size of UILabel
是的,您可以使用:
your_text = [your_text substringToIndex:10];
your_label.text = your_text;
希望它可以帮助你。
NSString *temp = your string;
if ([temp length] > 10) {
NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
temp = [temp substringWithRange:range];
}
coverView.label2.text = temp;
我看不到任何直接的方法来实现这一点。但是我们可以做点什么,让我们为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 = Hello Newb