UILabel pointSize总是返回0

时间:2012-04-10 21:00:25

标签: iphone uilabel uifont

更新:iOS 4是一个主要的播放器。如果您正在运行iOS 4 SIM卡,标签将返回0.00的大小,因为它从未加载...这改变了我的最后一个问题:“如果Xib是如何在iOS 4中找到字体大小加载一个不同的字体?或者......为两者加载一个工作字体会更好,抓住大小,然后将其更改为iOS 5时更新的,只是翻转测试?“

后者似乎显而易见,但由于设计师进入Xib并且新字体更薄,因此我们不得不将尺寸更改为正常的Helvetica(适用于iOS 4)。如果在视觉上,设计师和我在设计时看错字体,那就不太理想了。

也许我想出了这个,但是我希望iOS向导能够在xib加载问题上回答这个xib-become-0初始测试,如果可能的话。

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

我正试图从我的网点抓取当前设置的字体pointSize,并且度过了一段非常艰难的时光。

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

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

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

结果:

NSLogging labelName.font.pointSize在“获取XX字体”功能打印0.00之前,在打印尺寸后执行此操作。

奇怪的部分:虽然我无法手动找到它,但无论我是否使用xHeight,pointSize或lineHeight(frame.size.height太大,否则会这样做),如果我只是返回字体为iOS 5,它看起来很好,好像,某种程度上它找到了正确的价值。我希望这可能不是私密的,但却没有找到。

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

现在要重新启动,感谢无法修复的boostrap事件。

感谢您的帮助!

我不是iOS的新手,这让我感到困惑

1 个答案:

答案 0 :(得分:0)

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

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