Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 基于NSAttributedText的UITableViewCell的高度_Ios_Objective C - Fatal编程技术网

Ios 基于NSAttributedText的UITableViewCell的高度

Ios 基于NSAttributedText的UITableViewCell的高度,ios,objective-c,Ios,Objective C,我使用以下代码根据NSAttributedText获取UITableViewCell的高度: - (CGFloat)tableView:(UITableView *)pTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; { CGSize size = CGSizeMake([pTableView bounds].size.width, 100.0F); NSAttributedString *text = [se

我使用以下代码根据NSAttributedText获取UITableViewCell的高度:

- (CGFloat)tableView:(UITableView *)pTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    CGSize size = CGSizeMake([pTableView bounds].size.width, 100.0F);
    NSAttributedString *text = [self.tableSource getData:[indexPath row]];
    CGRect rect = [text boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) context:nil];
    return rect.size.height;
}
属性化文本具有以下属性:

Country *c = [countryArray objectAtIndex:row];
NSMutableAttributedString *data = [[NSMutableAttributedString alloc] initWithString:c.name];
[data addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Palatino" size:30.0F]  range:NSMakeRange(0, [c.name length])];
NSMutableParagraphStyle *paraStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopyWithZone:nil];
paraStyle.headIndent = 2.0F;
paraStyle.tailIndent = -2.0F;
paraStyle.lineSpacing = 20.0F;
[data addAttribute:NSParagraphStyleAttributeName value:paraStyle range:NSMakeRange(0, [c.name length])];
return data;
单层电池的高度为33.0华氏度,有些电池的高度为53.0华氏度。两行单元格让我更高,但它们是一致的。为什么单线单元格的高度不一致,分别为33.0F和53.0F


我通过使用最小线高度获得了想要的效果:

   NSMutableParagraphStyle *paraStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopyWithZone:nil];
    paraStyle.minimumLineHeight = 46.0F;
    [data addAttribute:NSParagraphStyleAttributeName value:paraStyle range:NSMakeRange(0, [c.name length])];

这应该是因为如果字母表上写着“y”和“g”以及“h”和“l”。是什么原因造成的。当你得到53.0F时,检查文本中的字母表,因为阿富汗有一个g,但它的高度是33。阿尔巴尼亚的身高是53。确保你接受你的答案,这样问题就不会显示为未回答。