2012-04-10 145 views
2

更新:iOS 4是主要玩家。如果你運行的是iOS 4 sim,那麼標籤的大小將返回0.00,因爲它從來沒有加載過......這改變了我的最後一個問題:「如果Xib是如何在iOS 4中找到字體大小的話加載不同的字體?或者...爲兩者加載工作字體,獲取大小,然後將其更改爲新的,如果iOS 5只是翻轉測試,會更好嗎?「UILabel pointSize總是返回0

後者看起來很明顯,但並不理想,因爲設計師進入Xib並且新字體更薄,因此我們必須將尺寸更改爲普通Helvetica(適用於iOS 4) 。如果在視覺上,設計師和我在設計時會看到錯誤的字體,這只是不理想。

也許我想到了這一點,但我希望如果可能的話,iOS嚮導可以回答xib-become-0在xib加載問題上的初始測試。

末----- -----更新

我想抓住從我的插座當前設置字體的pointsize和我有一個非常艱難的時期。

問題:iOS 4不支持我正在使用的字體。 iOS 5的確如此。

解決方案:調用一個獲取當前iOS級別的函數,如果是5,則返回完全相同的標籤並使用其字體類型。如果iOS 4,將其設置爲Helvetica並嘗試獲取其大小(在xib中設置)。

抓取大小是不可能的,它總是返回0.00(除了某些情況下,即將確定的情況,但...)原因並非來自延遲加載。加載視圖後,我只是在1秒的延遲後調用相同的函數(更改字體1)。

結果:

NSLogging「獲取字體爲XX」功能打印0.00之前的labelName.font.pointSize,打印完畢後,做它的大小。

奇怪的部分:儘管我無法手動找到它,無論我使用的是xHeight,pointSize還是lineHeight(frame.size.height太大,否則會這樣做),如果我簡單地返回字體對於iOS 5來說,它看起來很好,就好像它在某個地方找到了正確的價值。我很希望這可能不是私人的,但沒有發現。

問題不能延遲加載的東西零,因爲第二次延遲的方式比加載標籤所需的時間多(而且它們是可見的)。

現在重新啓動,感謝unfixable boostrap的事情。

感謝您的幫助!

我不是新到iOS,這是令人費解我有點

回答

0

我還沒有發現任何解決方案,因爲要求。 我相信答案是: iOS 4根本不會創建字體,而是: 如果字體在該平臺上不存在,則以前的iOS版本不會創建標籤的文本。

我只知道這是沒有記錄,因爲它是在一個WWDC視頻,如MKMapKit mapRect defs