Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
Ios 如何计算UILabel行中可以包含多少个字符?_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 如何计算UILabel行中可以包含多少个字符?

Ios 如何计算UILabel行中可以包含多少个字符?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我想制作一个带有单元格动态高度的UITableview。在每个单元格中,我显示一条不同文本的消息。现在,我希望我的表格单元格符合消息的文本,并且单元格上的标签应该显示文本。 我正在根据一行中可以容纳的字符数使表格单元格灵活。但问题是。不同的字母表占用不同的空间。因此,我无法计算一行中可以包含多少个字母。对此有什么建议吗?检查我的答案 在这里,您必须根据文本计算标签的高度,然后设置为单元格的高度 可以使用此选项动态计算高度和宽度 我希望它能帮助你请给出我下面的答案 UILabel *lbl =

我想制作一个带有单元格动态高度的
UITableview
。在每个单元格中,我显示一条不同文本的消息。现在,我希望我的表格单元格符合消息的文本,并且单元格上的标签应该显示文本。 我正在根据一行中可以容纳的字符数使表格单元格灵活。但问题是。不同的字母表占用不同的空间。因此,我无法计算一行中可以包含多少个字母。对此有什么建议吗?

检查我的答案

在这里,您必须根据文本计算标签的高度,然后设置为单元格的高度

可以使用此选项动态计算高度和宽度


我希望它能帮助你

请给出我下面的答案

UILabel *lbl = [[UILabel alloc] init];
 lbl.text = @"abcd";
 NSLog(@"count %lu",(unsigned long)[lbl.text length]);
试试这个:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{CGSize size;
        if (SYSTEM_VERSION_LESS_THAN(@"7.0")) {
            // code here for iOS 5.0,6.0 and so on
            CGSize fontSize = [text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17]];
            size = fontSize;
        }
        else {
            // code here for iOS 7.0
            NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                                  [UIFont fontWithName:@"Helvetica Neue" size:19], NSFontAttributeName,
                                                  nil];
            CGRect fontSizeFor7 = [text boundingRectWithSize:CGSizeMake(571, 500)
                                                     options:NSStringDrawingUsesLineFragmentOrigin
                                                  attributes:attributesDictionary
                                                     context:nil];
            size = fontSizeFor7.size;

        }return size.height +30 ;

    }

您不想计算文本的字符数,只需使用以下方法计算高度:

h = [NSString stringWithFormat:@"%f",
                           [post.text boundingRectWithSize:CGSizeMake(298.0f, CGFLOAT_MAX)
                           options:(NSStringDrawingUsesLineFragmentOrigin)
                           attributes:[NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Helvetica Neue" size:14.0]
                           forKey: NSFontAttributeName]
                           context:nil].size.height]

使用298的宽度和字体/fontsize。

发布您尝试过的代码。希望有一些处理字体的类。您不需要使用字体etcy计算所使用的每个字符:[ourText sizeWithFont:font constrainedToSize:ConstrainetSize lineBreakMode:UILineBreakModeWordWrap];此方法已被弃用。是的,我知道。。。但它适用于7.0以下的ios版本。对于其他,您可以找到它的替代品。我已经给了你线索:)sizeWithFont方法是不推荐的。它在iOS 7上运行良好,但在iOS 6why+30上不工作<代码>尺寸.高度+30
h = [NSString stringWithFormat:@"%f",
                           [post.text boundingRectWithSize:CGSizeMake(298.0f, CGFLOAT_MAX)
                           options:(NSStringDrawingUsesLineFragmentOrigin)
                           attributes:[NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Helvetica Neue" size:14.0]
                           forKey: NSFontAttributeName]
                           context:nil].size.height]