2

更新:iOS 4 是主要参与者。如果您正在运行 iOS 4 sim,标签将返回 0.00 的大小,因为它从未加载...这将我的最后一个问题更改为:“如果 Xib 是,您如何在 iOS 4 中找到字体大小“

后者看起来很明显,但并不理想,因为设计师进入了 Xib 并且新字体更细,因此我们必须将大小更改为更小,以便正常 Helvetica(适用于 iOS 4)。如果在视觉上,设计师和我在设计时看错了字体,那就不理想了。

也许我想出了这个,但我希望 iOS 向导可以回答这个关于 xib 负载问题的 xib-becomes-0 初始测试,如果可能的话。

----- 结束更新 -----

我正在尝试从我的网点获取当前设置的字体 pointSize,并且遇到了非常艰难的时期。

问题:iOS 4 不支持我使用的字体。iOS 5 可以。

解决方案:调用获取当前 iOS 级别的函数,如果为 5,则返回相同的标签并使用其字体类型。如果是 iOS 4,请将其设置为 Helvetica 并尝试获取其大小(在 xib 中设置)。

抓取大小是不可能的,它总是返回 0.00(除了某些情况,即将确定,但是......)原因不是延迟加载。我只是在加载视图后延迟 1 秒后调用了相同的函数(更改字体之一)。

结果:

NSLogging labelName.font.pointSize 在“get font for XX”函数打印 0.00 之前,在打印大小之后执行。

奇怪的部分:虽然我无法手动找到它,但无论我是否使用 xHeight、pointSize 或 lineHeight(frame.size.height 太大,否则会这样做),如果我只是返回 iOS 5 的字体,它看起来不错,好像不知何故——它在某个地方找到了正确的值。我一厢情愿地认为这可能不是私人的,但还没有找到。

问题不能是延迟加载使东西为零,因为第二次延迟的方式超过了加载标签所需的时间(并且它们是可见的)。

现在重新启动,多亏了不可修复的 boostrap 东西。

谢谢你的帮助!

我对iOS并不陌生,这让我有点困惑

4

1 回答 1

0

自询问以来,我还没有找到任何解决方案。我相信答案是:iOS 4 根本不创建字体,或者更确切地说:如果该平台上不存在字体,则以前的 iOS 版本不会创建标签的文本。

我只知道这没有记录,因为它在 WWDC 视频中,例如 MKMapKit mapRect defs

于 2012-09-17T18:51:49.927 回答