2010-03-21 77 views
0

我有一個UITableViewController。我想在底部有一個「toolbar-ish」組件。如何在UITableViewController中創建一個自定義的UIToolbar組件?

我開始使用背景圖像和按鈕。在界面生成器中,我將它們添加到了iPhone屏幕的底部。我遇到的問題是背景圖像和按鈕與表格一起滾動。我顯然需要這個固定在底部。

在網上找不到太多方向,我決定自定義一個UIToolbar,看看我想怎麼樣,因爲這個位置默認是固定的。在我的initWithNibName我的UITableViewController,我有:

UIImage *shuffleButtonImage = [UIImage imageNamed:@"shuffle_button.png"]; 
     NSArray* toolbarItems = [NSArray arrayWithObjects: 
           [[UIBarButtonItem alloc] initWithImage:shuffleButtonImage 
                  style:UIBarButtonItemStylePlain 
                  target:self 
                  action:@selector(push:)], 
           nil]; 
     [toolbarItems makeObjectsPerformSelector:@selector(release)]; 
     self.toolbarItems = toolbarItems; 

我遇到現在的問題是,「shuffleButtonImage」無法顯示正確的。按鈕的形狀顯示很好,但是它的顏色是白色的,因此看起來不像圖像。

有誰知道爲什麼會顯示「白色圖像」而不是實際圖像?

它也聽起來像是一個好主意,定製UIToolbar還是有一個簡單的方法來確保固定位置「工具欄 - ish」組件。

重申 - 我的「toolbar-ish」組件只需要在我的UITableView的按鈕上有一個按鈕。單個按鈕具有漸變顏色背景,我使用圖像創建。

+0

我遇到了一些[麻煩](http://stackoverflow.com/questions/16438074/controlling-display-coordinates-of-view-item-added-to-toolbar)和[結束](http:///stackoverflow.com/a/16439123/766570)我應該從頭開始創建自己的工具欄,但我不確定你是如何解決這個問題的? – abbood 2013-05-08 11:48:36

回答

0

您的圖片可能顯示爲空白,因爲它沒有在您的資源中找到。在定義shuffleButtonImage之後加上一個斷點並檢查它不是零。

1

從「圖像」參數在documentation描述爲initWithImage:樣式:目標:行動:的UIBarButtonItem類的方法:

的欄上顯示的圖像被從該圖像的。如果此圖像太大而無法放在條上,則會縮放以適合該條。通常,工具欄和導航欄圖像的大小爲20 x 20點。源圖像中的alpha值用於創建圖像 - 不透明值將被忽略。

基本上,您提供的圖像被用作蒙版,爲實際的按鈕圖像創建輪廓/陰影。我不相信你可以改變UIBarButtonItem的這種行爲。

作爲替代方案,您可以創建一個UIButton(使用您的彩色圖像),然後將其設置爲您的UIBarButtonItem的自定義視圖,如建議here。如果你走這條路線,設置UIButton的邊界以匹配UIBarButtonItem的範圍可能也是必要的(參見this討論)。

相關問題