Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标c label.numberOflines不工作_Objective C_Uilabel - Fatal编程技术网

Objective c 目标c label.numberOflines不工作

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

无论我将行数设置为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.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。在这里使用你的逻辑。