从 sizewithFont:constrainedToSize:lineBreakMode: 过渡到 iOS 7 的行为不符合预期
Posted
技术标签:
【中文标题】从 sizewithFont:constrainedToSize:lineBreakMode: 过渡到 iOS 7 的行为不符合预期【英文标题】:Transition from sizewithFont:constrainedToSize:lineBreakMode: for iOS 7 not behaving as expected 【发布时间】:2013-12-28 02:17:41 【问题描述】:我正在尝试摆脱 ios 7 中已弃用的功能,并且我正在运行一些我不理解的东西。这是我现在拥有的代码:
CGFloat titleHeight = [[object name] sizeWithFont:[UIFont fontWithName:@"Abel" size:24.0f] constrainedToSize:CGSizeMake(170.0f, 200.0f) lineBreakMode:NSLineBreakByWordWrapping].height;
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
CGFloat titleHeight2 = [[object name] boundingRectWithSize:CGSizeMake(170.0f, 200.0f) options:0 attributes:@NSFontAttributeName: [UIFont fontWithName:@"Abel" size:24.0f], NSParagraphStyleAttributeName: paragraphStyle context:nil].size.height;
由于某种原因,titleHeight
和 titleHeight2
最终成为不同的值,我不知道为什么。有任何想法吗?谢谢!
【问题讨论】:
【参考方案1】:文档says:
要正确绘制多行文本并调整其大小,请通过
NSStringDrawingUsesLineFragmentOrigin
在 options 参数中。
你试过了吗?
【讨论】:
我在文档中错过了!谢谢!一旦允许我就会接受 不,我在行尾有 .size.height。 另外,也不需要 NSMutableParagraphStyle,该选项解决了问题。 @Mason,明白了。我的错。以上是关于从 sizewithFont:constrainedToSize:lineBreakMode: 过渡到 iOS 7 的行为不符合预期的主要内容,如果未能解决你的问题,请参考以下文章