- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
除非我读错了文档,否则这个方法 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
似乎没有返回正确的 CGSize。这是示例代码
NSString *someText = @"$";
CGFloat actualFontSize;
CGSize textSize = [someText sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:100.0] minFontSize:1.0 actualFontSize:&actualFontSize forWidth:10.0 lineBreakMode:UILineBreakModeClip];
返回的 textSize
的高度是字体大小为 100.0 时的高度,而不是新缩小字体大小时的高度。
如果您随后采用 actualFontSize
并执行 sizeWithFont:forWidth:lineBreakMode:
:
CGSize newTextSize = [someText sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:actualFontSize] forWidth:10.0 lineBreakMode:UILineBreakModeClip];
现在 newTextSize
将包含正确的高度。
还有其他人遇到过这个吗?
最佳答案
问题是你的宽度。因为您已将最小字体设置为 1.0 像素并且仅将宽度设置为 10.0,所以您的 textSize 将自动调整为适合您自己设置的 10.0 宽度的较低 textSize。
CGSize textSize = [someText
sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:100.0]
minFontSize:1.0 //the troublemaker
actualFontSize:&actualFontSize
forWidth:10.0 //the troublemaker
lineBreakMode:UILineBreakModeClip];
您发布的另一个将返回正确的大小,因为您没有设置最小 textFont 并且您将宽度设置得恰到好处。
CGSize newTextSize = [someText
sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium"
size:actualFontSize]
forWidth:currencyRect.size.width //probably not 10 pixels wide
lineBreakMode:UILineBreakModeClip];
关于iphone - 大小与字体 :minFontSize:actualFontSize:forWidth:lineBreakMode: not returning proper CGSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864377/
为什么这行不通?无论字符串的长度如何,它总是返回 18。有 this thread ,但不是确定的答案。 NSString * t = @""; CGSize size = [t si
我一直使用的许多方法来确定用于创建复杂 pdf 文档的打印字符串的布局在 iOS7 中已被弃用。文档调用了相同的方法来替代所有已弃用的 sizeWithFont 方法: boundingRectWit
我有一个奇怪的问题。我的 sizeWithFont: forWidth: lineBreakMode:NSLineBreakByWordWrapping正在返回错误的值。我有一个字符串数组,需要放在一
这个问题在这里已经有了答案: How to calculate actual font point size in iOS 7 (not the bounding rectangle)? (8 个答
在我的问题“How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?”中,我了解到 -[NSString sizeW
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 返回的 CGSize 始终包含相同的高度。为什么会这样,有没有办法解决这
我用建议的解决方案描述了我的问题,更新了我的问题“Sizing a UILabel (in the iPhone SDK) to fit?”,但没有得到答案。也许通过提出新问题我会得到更好的结果...
我在 iPhone SDK 开发人员文档的 NSString 类引用中找不到 NSString sizeWithFont:forWidth:lineBreakMode: 方法的文档(参见 Kevin
除非我读错了文档,否则这个方法 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 似乎没有返回正确的 CGSize。这是示
随着 iOS7 的发布,以下功能已被弃用: drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselin
此方法在 iOS 7.0 中已弃用: drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment: 现在使用 dra
我是一名优秀的程序员,十分优秀!