最小字体大小在iOS 6.0版本已被弃用。

92

我刚刚升级到了带有iOS 6.0的xcode 4.5,现在我的XIB文件中所有UILabel都显示一个警告:“最小字体大小在iOS版本6.0上已过时”。请问有人知道这是什么意思并且如何修复吗?

更新:图片不再可用(以前在https://skitch.com/hahmadi82/eyk51/cloud上)。


7
把“自动缩放”部分中的“最小字号”更改为“最小字体比例”。我也遇到了同样的问题,立刻来到这里,以为字体不会违反保密协议。看起来在更新中,字体经历了一些变化。 - erran
18
我将重新提出这个问题,因为它被错误地关闭了。至少关闭的理由是完全错误的。"它只与一个小的地理区域有关"不对,它适用于所有iOS开发者。"非常狭窄的情况,不适用于全球互联网受众"也不对,它适用于每个人。"这个问题不太可能帮助任何未来的访问者"也不对,它对我来说非常有用,对任何iOS开发者也同样实用。我理解保密协议的问题,但一旦保密协议解除,这个问题就会重新站起来。 - Jean-Denis Muys
9
大家好,第一次修复这个问题时,我手动完成了这项工作,这是一种特殊的折磨。之后,我需要合并一些更改,幸运的是 Xcode beta 以 Emacs 作为我的合并工具,所以我放弃了手动合并,并采用了文件的新版本,因为我知道我将抛弃这些更改,然后我使用 TextWrangler 重新完成了这些更改:这些文件是xml格式的。只需将 autoshrinkMode="minimumFontSize" 替换为 autoshrinkMode="minimumFontScale",并将 minimumFontSize="10" 替换为 minimumFontScale="0.5"。就这样,搞定了。 - Rob
1
@LittleBobbyTables:如果人们能够友好地提问,那就太好了。像matheszabi的评论那样生气和自以为是的抱怨会让我不愿意重新打开一个问题。 - C. A. McCann
1
@HoomanAhmadi - 你能否更新你的问题并提供一个更好的链接?当前的图片链接已经失效了。 - LittleBobbyTables - Au Revoir
显示剩余10条评论
9个回答

47

minimumFontSize属性自iOS 6.0起已被弃用。

minimumScaleFactorminimumFontSize的替代方案。如果您将minimumFontSize/defaultFontSize分配给minimumScaleFactor,它将以与minimumFontSize相同的方式工作。

代码示例如下-例如字体大小为30.0,如果您希望最小字体大小为12.0:

YOURLABEL.font= [UIFont fontWithName:@"FONT_NAME" size:30.0];
[YOURLABEL setMinimumScaleFactor:12.0/[UIFont labelFontSize]];

19

Use minimumScaleFactor instead... Link


8

快速解决方案...这里的最小字体大小应为8.0

            CGFloat size = textLabel.font.pointSize;// font size of label text
            [textLabel setMinimumScaleFactor:8.0/size];

6

我回答得很晚,但可能会对其他人有帮助。 众所周知,setMinimumFontSize已被弃用,替代setMinimumFontSize的方法是setAdjustFontToFitWidth,它需要使用BOOL类型的参数。 例如:

[yourLabel setAdjustsFontSizeToFitWidth:YES];
//or
yourLabel.adjustsFontSizeToFitWidth = YES;

5

对于Swift,请使用以下内容:

//set the number (ex. 8 to your desired minimum font size)
myLabel!.minimumScaleFactor = 8/myLabel!.font.pointSize;`

运行得好极了!

3

我有类似的问题。快速解决方法是使用UILabel的MinimumScaleFactor属性。


1

进入Finder并找到.storyboard文件或您的.xib,然后使用TextEdit打开。使用查找功能定位字符串"autoshrinkMode",并将值"minimumFontSize"替换为"minimumFontScale"

奇怪的是,转换没有写在更新脚本中...

同时感谢上面评论区的@Rob提供了相同的答案。他应该得到这个答案的认可。


我的故事板文件中没有autoshrinkMode。 - Timuçin
谢谢,这对我非常有效。@Tim,你只需要选择UILabel,在右侧实用面板中检查“标签”选项,并检查选项,你会看到一个叫做“自动缩小”的选项。http://i.stack.imgur.com/H6YYJ.png - pabloverd

0

你可以在那里使用最小比例因子或拖动标签并设置自动缩小 -> 最小字体。

也许这可以帮助你。


0

是的,minumumFontSize 已被弃用。

使用以下 minimumScaleFactor:-

Obj.minimumScaleFactor= (floatValue);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接