Objective c 目标c label.numberOflines不工作
无论我将行数设置为0或100,它都不会改变,文本保持不变。。。最后。我尝试过NSLineBreakByWordWrapping,但它只是删除了。。。什么也不做Objective c 目标c label.numberOflines不工作,objective-c,uilabel,Objective C,Uilabel,无论我将行数设置为0或100,它都不会改变,文本保持不变。。。最后。我尝试过NSLineBreakByWordWrapping,但它只是删除了。。。什么也不做 UILabel *label = [[UILabel alloc] init]; [cell.contentView addSubview:label]; label.text = myString; label.frame = CGRectMake(17, 42, 200, 30); [label sizeToFit]; label.l
UILabel *label = [[UILabel alloc] init];
[cell.contentView addSubview:label];
label.text = myString;
label.frame = CGRectMake(17, 42, 200, 30);
[label sizeToFit];
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
用这个
UILabel *label = [[UILabel alloc] init];
label.text = @"myStringsdsdvsvdsdvsdvsdndbndbnbdnbdnbdnpopopoploplklioolnhbfghrmyString";
label.numberOfLines = 0;
label.frame = CGRectMake(0, 50, 320, 568);
[self.view addSubview:label];
label.frame = CGRectMake(0, 42, [self widthForLabel:label withText:label.text], [self height:label withText:label.text]);
label.backgroundColor = [UIColor redColor];
动态宽度
-(CGFloat)widthForLabel:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.width);
}
return 0;
}
动态高度
-(CGFloat)height:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.height);
}
return 0;
}
这里的问题是您需要用这样的框架初始化标签
label.frame = CGRectMake(0, 50, 320, 568);
现在,将标签添加到视图后,计算标签的动态宽度和高度,然后再次设置框架
希望它能起作用。用这个
UILabel *label = [[UILabel alloc] init];
label.text = @"myStringsdsdvsvdsdvsdvsdndbndbnbdnbdnbdnpopopoploplklioolnhbfghrmyString";
label.numberOfLines = 0;
label.frame = CGRectMake(0, 50, 320, 568);
[self.view addSubview:label];
label.frame = CGRectMake(0, 42, [self widthForLabel:label withText:label.text], [self height:label withText:label.text]);
label.backgroundColor = [UIColor redColor];
动态宽度
-(CGFloat)widthForLabel:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.width);
}
return 0;
}
动态高度
-(CGFloat)height:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.height);
}
return 0;
}
这里的问题是您需要用这样的框架初始化标签
label.frame = CGRectMake(0, 50, 320, 568);
现在,将标签添加到视图后,计算标签的动态宽度和高度,然后再次设置框架
希望它能起作用。我已经改变了,但仍然不起作用。请在……中找到答案。你说不起作用是什么意思?此属性控制将标签文本放入其边框中所使用的最大行数。您应该编写
label.lineBreakMode=NSLineBreakByWordWrapping;label.numberOfLines=0代码>以上[sizeToFit]
我已更改,但仍然不起作用。请在…中找到答案,你说不起作用是什么意思?此属性控制将标签文本放入其边框中所使用的最大行数。您应该编写label.lineBreakMode=NSLineBreakByWordWrapping;label.numberOfLines=0代码>以上[sizeToFit]
您的解决方案对我来说很有吸引力。上帝保佑你。您知道如何设置动态行高吗?self.table.estimateDroweight=44.f;和self.table.rowHeight=UITableViewAutomaticDimension;你不是为我工作,没事。若这个答案最适合你们的解决方案,那个么在上面打勾,这样其他人也可以很容易地得到它。现在让我来解决关于tableView高度的另一个问题。有一种方法可以动态设置高度-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath。用你的逻辑,你的解决方案对我来说很有吸引力。上帝保佑你。您知道如何设置动态行高吗?self.table.estimateDroweight=44.f;和self.table.rowHeight=UITableViewAutomaticDimension;你不是为我工作,没事。若这个答案最适合你们的解决方案,那个么在上面打勾,这样其他人也可以很容易地得到它。现在让我来解决关于tableView高度的另一个问题。有一种方法可以动态设置高度-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath。在这里使用你的逻辑。