2011-08-20 61 views
2

我有一個tableview,其中一個單元格應該顯示縮略圖圖像。但是,如果該圖像不可用(尚未拍攝),我想LIKE爲單元的accessoryView顯示相機UIBarButtonItem ...但是當我嘗試我平常的方法時,我得到'不兼容類型'的警告。有什麼方法可以在導航欄外使用這些項目嗎?是否有可能有一個UIBarButtonItem作爲單元accessoryView?

回答

5

由於UIBarButtonItem不是UIView,因此不可能直接使用UIBarButtonItem作爲單元的附件視圖。

次優解決方案可能是使用UIToolbar來保存您的UIBarButtonItem。然後,您可以將UIToolbar添加爲單元的附件視圖,但最終會出現UIToolbar的不需要的輪廓。這SO answer解釋如何使透明UIToolbar子類。這樣,你就不會看到工具欄的背景,但你也將失去UIBarButtonItem的輪廓 - 它只會顯示白色的相機圖標:

UIToolbar *toolbar = [[TransparentToolbar alloc] init]; 
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(someAction)]; 
toolbar.frame = CGRectMake(0, 0, 40, 30); 
[toolbar setItems:[NSArray arrayWithObject:item] animated:NO]; 
cell.accessoryView = toolbar; 
[item release]; 
[toolbar release]; 
+0

感謝:使用

[button setBackgroundImage:[UIImage imageWithImage:@"camerabutton.png"] forState:UIControlStateNormal]; 

,並採取按鈕的截圖其按下時,保存它,並把它設置爲圖像的選中狀態您的UIButton。我遺漏了透明度,結果是一個不錯的按鈕。 –

0

我認爲這是不可能的。因爲它被稱爲BarButtonItem它只能進入一個欄。老辦法allthough工程:拍攝相機按鈕的屏幕截圖(只需將其添加到任何導航欄的截圖),截圖從屏幕截圖,添加一個普通的UIButton到您的單元格,並添加相機的圖像按鈕作爲backgroundimage

[button setBackgroundImage:[UIImage imageWithImage:@"camerabuttonpressed.png"] forState:UIControlStateHighlitedl]; 
相關問題