2012-11-05 80 views
1

我有兩個UIToolbar實例,一個添加在屏幕頂部,一個添加在底部。我想用iOS 5外觀協議來設計這些風格。以編程方式添加工具欄的UIToolbar外觀

我可以得到以下工作:

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarimage.png"] 
          forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 

但是,我無法得到UIToolbarPositionTopUIToolbarPositionBottom與我的編程工具欄添加工作。我創建的工具欄是這樣的:

_topBar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
_topBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
[self.view addSubview: _topBar]; 

_bottomBar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44)]; 
    _bottomBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    [self.view addSubview: _bottomBar]; 

據我瞭解,UIToolbarPositionTop正常工作與界面生成器文件,但是沒有人知道一個辦法讓他們編程工作?

回答

4

這是一個相對簡單的修復。而不是使用一般

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarimage.png"] 
         forToolbarPosition:UIToolbarPositionAny 
           barMetrics:UIBarMetricsDefault]; 

人們可以針對特定的工具欄這樣:

// Setup top tool bar 
UIToolbar *topToolbar = [[UIToolbar alloc] init]; 
[topToolbar setBackgroundImage:[UIImage imageNamed:@"top_toolbar.png"] 
       forToolbarPosition:UIToolbarPositionAny 
         barMetrics:UIBarMetricsDefault]; 

// Setup bottom toolbar 
UIToolbar *bottomToolbar = [[UIToolbar alloc] init]; 
[bottomToolbar setBackgroundImage:[UIImage imageNamed:@"bottom_toolbar.png"] 
       forToolbarPosition:UIToolbarPositionAny 
         barMetrics:UIBarMetricsDefault]; 

我發現了一個類似的答案,以爲什麼UIToolbarPositionTop等一些細節是系統屬性,不應被依賴in this answer

相關問題