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