Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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 在boundingRectWithSize:options:context:中使用NSStringDrawingUserLineFragmentOrigin可获得额外的空白_Ios_Uitableview_Uikit - Fatal编程技术网

Ios 在boundingRectWithSize:options:context:中使用NSStringDrawingUserLineFragmentOrigin可获得额外的空白

Ios 在boundingRectWithSize:options:context:中使用NSStringDrawingUserLineFragmentOrigin可获得额外的空白,ios,uitableview,uikit,Ios,Uitableview,Uikit,我在iOS 7中使用BoundingRectize:options:context:来计算UITableViewCell中文本的动态高度。但是,使用此方法和nsStringDrawingUserLineFragmentOrigin作为选项,我总是在底部和顶部获得一些额外的空间。如果切换到nsStringDrawingUserDeviceMetrics,则文字不会在行尾换行。以下是截图: 对于一些包含更多文本的行,空间会大得多。我如何解决这个问题?我使用以下代码获取保存文本的UILabel框架的

我在iOS 7中使用BoundingRectize:options:context:来计算UITableViewCell中文本的动态高度。但是,使用此方法和
nsStringDrawingUserLineFragmentOrigin
作为选项,我总是在底部和顶部获得一些额外的空间。如果切换到
nsStringDrawingUserDeviceMetrics
,则文字不会在行尾换行。以下是截图:

对于一些包含更多文本的行,空间会大得多。我如何解决这个问题?我使用以下代码获取保存文本的UILabel框架的大小:

- (CGSize)sizeWithMaxSize:(CGSize)constrainedSize andFontSize:(CGFloat)fontSize {
    self.paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    self.paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    NSDictionary *dictionary = @{NSFontAttributeName: [UIFont systemFontOfSize:fontSize],
                             NSParagraphStyleAttributeName: self.paragraphStyle.copy,
                             NSForegroundColorAttributeName:[UIColor blackColor]};
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:self attributes:dictionary];
    CGRect frame = [attributedString boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin context:nil];
    return frame.size;
};

如果您这两个选项,因为它们只是位字段,该怎么办<代码>NSStringDrawingUserLineFragmentOrigin | NSStringDrawingUserDeviceMetrics

因此,不是:

CGRect frame = [attributedString boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin context:nil];
你有:

CGRect frame = [attributedString boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesDeviceMetrics context:nil];

我也有同样的问题。你发现问题了吗?你运气好吗?我也有同样的问题。