2012-12-26 47 views
0

我一直在開發幾個小時的應用程序。自定義在.xib中保存的UIBarButton的文本樣式

我從模板製作主視圖細節應用程序。 AppDelegate.m didFinishLaunchingWithOptions允許我添加一些自定義的GUI代碼來改變導航欄之類的東西。所以我繼續前進,併爲主導航欄的背景設置了自定義背景,像這樣...

//custom navbar 
UIImage *navigationBarBackground = [UIImage imageNamed:@"NavigationBarBackground.png"]; 
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault]; 

太棒了!現在我的導航欄有自定義bgs!

現在在主視圖區域中,我在視圖的右上角有一個+按鈕,當您單擊它時,會打開一個窗口覆蓋其餘內容,但不是全屏幕,只是一個地方輸入一些信息,如表單。我用.xib創建了一個新類。我從IB設計了新窗口。

但是,當新窗口彈出,導航欄不是我的自定義圖像,它是默認......

所以我花了幾個小時試圖找到一種方法,也改變這一點。最後,我想出了一個將自定義類添加到UIToolbar的方法,通過創建一個新的類來創建應用於其中的navBar,並將某個圖像加載到其背景中。大!對於我的.m文件看起來是這樣的:

#import "customToolbar.h" //for your information the .h for this is a blank { } 

@implementation customToolbar 


- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    UIImage *image = [UIImage imageNamed:@"addBusKid-NavBar.png"]; 
    CGContextDrawImage(c, rect, image.CGImage); 
} 

@end 

如此美妙,這一類的,我可以申請任何背景圖片在界面生成器的導航欄。

...

現在,我的導航條都好看,我覺得是時候改變一些文字!於是,我開始回到我的AppDelegate.m

我添加了一些代碼來改變所有的導航欄文本的默認文本樣式...

// Customize the title text for *all* UINavigationBars 
[[UINavigationBar appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0], 
    UITextAttributeTextColor, 
    [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
    UITextAttributeTextShadowColor, 
    [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
    UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"Arial-Bold" size:0.0], 
    UITextAttributeFont, 
    nil]]; 

大,這改變了我的導航欄文本樣式.. 。但等等,當我打開使用.xib創建的彈出窗口時,就像在AppDelegate中添加navigationBar樣式時一樣,它不會影響其外觀。所以,無論我的外觀協議,他們不會影響我的自定義類xibs外觀...

嗯,我試圖做一個自定義的類,就像我做的導航欄,我可以申請給它一些風格。但我無法做到這一點(如果你知道請告訴我)...

而我去了3 +小時尋找某種方式來設置這個.xib文件中的文本樣式!我放入AppDelegate的東西都沒有觸及它!

所以,徹底向你解釋了我自己。我的問題是這樣的:

如何設置在界面生成器中創建的UIBarButton文本。

您是否知道我可以編寫的自定義類,然後可以將其應用於對象,就像我爲此導航欄做的一樣,或者有一些方法可以根據什麼添加此.xibs UI元素以進行風格化我在AppDelegate中聲明。請建議我。我做了功課。

順便說一句,這是我的第一篇文章!我已經感到在家了!感謝您的支持,我希望我也可以幫助別人。

回答

0

只需在您的.xib(視圖控制器)類中創建一個@property,該類將UIBarButtonItem聲明爲IBOutlet。將此(通過IB)鏈接到.xib按鈕表示形式,然後設置UIBarItem(父類)textAttributes方法的樣式。

詳情參見這太問題: How can i change Font of UIBarButtonItem?

+1

謝謝主席先生。你太棒了! – user1927446

+0

不用擔心。很高興幫助。 – Sarreph