2012-07-30 55 views
-1

從UIViewController中,我需要在UINavigationBar標題的左邊放置一個圖形。在下圖中,星號顯示該點。如何以編程方式獲得UINavigationBar標題的大小?

____________________________ 
|       | 
| <back|  *Title   | 
|____________________________| 

我認爲計算X現貨座標是這個公式的好方法:

self.view.frame.size.width/2.0 - titleWidth/2.0 

如果我能提取UINavigationBar的的titleTextAttributes的UIFont,我將能夠獲得的CGSize標題。

CGSize titleSize = [self.title 
    sizeWithFont:(UIFont*)[self.navigationController.navigationBar.titleTextAttributes  
    objectForKey:@"font"]]; 

令我沮喪的是,UIFont是零。

+0

btw它當然不是編譯器誰失敗,它是你或編譯... – 2012-07-30 21:38:41

回答

0

如何查看UINavigationBar的子視圖,直到找到UITextField,然後檢查其大小?

+0

這不是問題,並且使用未公開的代碼將失敗一天。看到我的答案。 – 2012-07-30 21:34:39

0

錯誤/未讀取文檔? UIFont是通過指針使用的適當的Objective-C類。

用途:

(UIFont *)[titleTextAttributes objectForKey:@"font"]; 

代替。

+0

我已經改變了鑄件到'UIFont *',但是這個對象在viewDidAppear中是零。 – JoJo 2012-07-30 22:00:29

+0

然後titleTextAttributes沒有此項,請嘗試NSLogging titleTextAttributes本身。 – 2012-07-30 22:02:25

+0

'{ TextColor =「UIDeviceWhiteColorSpace 0.4 1」; TextShadowColor =「UIDeviceWhiteColorSpace 1 1」; TextShadowOffset =「UIOffset:{0,1}」; }'這看起來沒有任何有用的信息來找出標題的字體。我知道字體是boldSystemFontOfSize:20.0,但我擔心它可能會改變的不同硬件(iPad vs iPhone)和操作系統(未來版本6)。 – JoJo 2012-07-30 22:04:12

相關問題