- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,
在 sizeWithFont:minFontSize:actualFontSize
中,我们传递了一个指向 actualFontSize 的指针,然后可以使用它来缩小标签内的字体。如:
[s sizeWithFont:self.font
minFontSize:minimumScaleFactor
actualFontSize:&actualFontSize
forWidth:width
lineBreakMode:lineBreakMode];
现在,我们可以通过 self.frame.font.pointSize = actualSize
来修改字体大小。我的问题是:既然 sizeWithFont 已被弃用,我该如何取回该指针?
基本上,推荐的替换方法是 boundingRectWithSize
:
[s boundingRectWithSize:CGSize(width,CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin)
attributes://An NSDictionary with font
context:nil];
但正如你所看到的,它只返回大小。我想做一些类似的事情:
changeInFontSize = (newSize.height - oldSize.height) + (newSize.width - oldSize.width)
-------------------------------------------------------------------
2
但这并不能真正给我想要的答案。有人可以帮助我如何做到这一点吗?准确地说 - 我需要字体大小的差异来更改当前字体大小!
最佳答案
问题是 sizeWithFont
方法会根据需要减小字体大小。因此,如果该函数使用较小的字体大小,您如何知道它使用的是哪种字体大小?这是 actualFontSize
的!来自文档:
Although it computes where line breaks would occur, this method does not actually wrap the text to additional lines. If the entire string does not fit within the given width using the initial font size, this method reduces the font size until the string does fit or until it reaches the specified minimum font size.
推荐的新方法boundingRectWithSize
不会减小字体大小。因此,如果该函数不减少 fonsize,这意味着它将使用您在 attributes
中指定的大小,则无需返回实际使用的大小(因为它正是您指定的大小,因此,您已经知道了)。
编辑:
如果您想计算适合某些预定义边界框所需的字体大小,您需要测试几个磅值并计算出最适合的字体大小。检查this link对于一些示例(链接上的最后一个答案看起来很有趣以优化效率)
关于ios - 在 Deprecated sizeWithFont :minFontSize:actualFontSize to get the change in font size? 中复制 actualFontSize 指针返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156095/
这个问题在这里已经有了答案: How to declare or mark a Java method as deprecated? (6 个回答) 关闭8年前。 我可以使用 @Deprecated
我要使用的代码: window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED) 有FLAG_SHOW_WHEN_LOCKED在 A
这个问题已经有答案了: Can I mix MySQL APIs in PHP? (4 个回答) Why shouldn't I use mysql_* functions in PHP? (14 个
我在我的网站上看到以下消息,我该怎么办? Deprecated: Function eregi() is deprecated in D:\wamp\www\cidoc.gov.mz\modules\
我正在弃用一组 Java 类,以便不再使用它们。我不想关闭不推荐使用的编译器警告,但我发现如果我的一个不推荐使用的类导入另一个不推荐使用的类,我也会收到警告。我不想修改我不赞成使用的代码,但我也不想在
这个问题在这里已经有了答案: How to use Ansible's with_item with a variable? (1 个回答) 3年前关闭。 我认为这是产生错误的剧本的一部分。我应该如何
在我的 Eclipse Indigo 中,只有 @Deprecated 有效,但 @deprecated 在评论中无效,知道吗? 例如 // @deprecated <-- not work @Dep
This question already has answers here: How can I convert ereg expressions to preg in PHP? (4个答案) 去年
我正在将代码从以前版本的 Swift 更改为 Swift5。并且有一条警告消息表明此代码不可用。我想更改此代码,但不知道如何更改。 警告代码 func pbkdf2(hash: CCPBKDFAlg
我正在开发使用 Game Center 的游戏,但我收到了下一个警告; ... 'authenticateWithCompletionHandler:' 已弃用:首先在 iOS 6.0 中弃用 好的,
您好,我在错误日志中收到此错误: "PHP 已弃用:自动填充 $HTTP_RAW_POST_DATA 已弃用,并将在未来版本中删除。为避免此警告,请在 php.ini 中将 'always_popul
您好,我在错误日志中收到此错误: "PHP 已弃用:自动填充 $HTTP_RAW_POST_DATA 已弃用,并将在未来版本中删除。为避免此警告,请在 php.ini 中将 'always_popul
CC_MD5 已在 ios14 中弃用,但我的项目至少支持 ios14。我仍然需要 MD5。我应该怎么办?我使用的开发语言是OC 最佳答案 MD5 已被弃用,因为它是一种有缺陷、不安全的算法。如果可以
我在 Xcode 上的这个条目上有以下问题: CLRegion *pushRegion = [[CLRegion alloc] initCircularRegionWithCenter:coordin
所以我有一个代码可以开始录制音频并不断收到上述警告消息。有帮助吗? - (IBAction)recordStart:(id)sender { AVAudioSession *recSessio
我制作了这个返回文档目录中文件大小的函数,它可以工作,但我得到警告,我想修复,函数: -(unsigned long long int)getFileSize:(NSString*)path { NS
我收到警告: >typings ls typings WARN deprecated 2016-08-05: "registry:dt/react#0.14.0+20160423065914" is
问题的表述有点奇怪,但我想要的是 Rspec 中 stub! 的替代方案,它不会产生弃用警告。 场景: 我使用 stub! 在我的帮助程序规范中对某些帮助程序方法进行 stub 。 例如 stub!(
最近我将我的 Rails 版本从 3.2 迁移到 4.2.6,同时我修改了一些 gem,例如回形针 2.3 到 4.3.6。当我运行 rails server 时,我得到以下弃用: DEPRECATI
My Goal: To fix this error and be able to run my app without an error. Error Message: Note:D:\Learni
我是一名优秀的程序员,十分优秀!