2014-09-19 15 views
-1

截圖的位置:Screenshot如何定位UIBarButtonItem並向其添加圖像?

嘿,

我不是一個編碼器和我沒有很多的expirience的除了一些HTML/CSS。我只是一個普通的傢伙試圖建立自己的第一個應用程序:)

這是我當前的問題:我想給每個按鈕在UINavigationBar的它自己的形象和他們定位,使他們在巴,而不是像屏幕截圖中所示的那樣懸掛它。我想讓左邊的按鈕位於最左邊的角落,最右邊的右邊加上他們兩個一點。

現在我已經設法至少給所有的按鈕相同的圖像(通過UIBarButtonIteam外觀)。當然,這不是我的意圖。每個按鈕應該有它自己的圖像。

你能幫我解決這個問題嗎?完成這件事最簡單的方法是什麼?此外,我正在使用Xcode 5/iOS 7.

回答

0

該代碼會幫助你:

的UIImage * bar_img = [UIImage的imageNamed:@「yourbarimage.png 「]; [self.navigationController.navigationBar setBackgroundImage:bar_img forBarMetrics:UIBarMetricsDefault];

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"YourImage.png"] ; 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(ActionOnClick) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 44, 44); 

UIView *backview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 44, 44)]; 
[backview addSubview:backBtn]; 

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backview] ; 
self.navigationItem.leftBarButtonItem = backButton; 
[self.navigationController.navigationBar setHidden:NO]; 
+0

這就是它!我不得不嘗試CGRectMake的一些,但我可以將按鈕放在需要的位置,並且它也有一個背景圖像。唯一的問題是按鈕不起作用了。這是它在我添加代碼之前做的事情'_barButton.target = self.revealViewCrontroller'和'_barButton.target = @selector(revealToggle :);'。你能幫我解決這個問題嗎? – Mariooo 2014-09-22 16:25:54

+0

我自己發現了這個問題!在玩遊戲時,我做了以下設置:'GCRectMake(0,0,0,44)];'這可能意味着它不再是一個形狀,而是一箇中風,因此無法點擊。我把它改成了'GCRectMake(0,0,44,44)';'現在它就像魅力一樣。道具給你!我很想upvote你的答案,但我現在沒有足夠的聲望:( – Mariooo 2014-09-22 16:40:16

0

試試這個代碼可以它會幫助你....

UIButton *done=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)]; 
[done setBackgroundImage:[UIImage imageNamed:@"imageName.png"] forState:UIControlStateNormal]; 

UIBarButtonItem *done1=[[UIBarButtonItem alloc]initWithCustomView:done]; 
+0

Thx。但是這會導致警告:「未使用的變量'done1'」。你知道爲什麼會發生這種情況嗎? – Mariooo 2014-09-22 15:51:46

+0

在上面的代碼我想說你,添加你自己的按鈕添加分配到您的導航欄按鈕..就像我分配'done1'按鈕。 – user2493047 2014-09-23 04:12:41

0

試試這個。

它會幫助你。在iOS 6和iOS 7中

UIImage *image = [UIImage imageNamed:@"filer_iphone.png"]; 
//for only ios 7 
if ([UIImage instancesRespondToSelector:@selector(imageWithRenderingMode:)]) 
{ 
    image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
} 
UIBarButtonItem *item=[[UIBarButtonItem alloc] 
           initWithImage:image style:UIBarButtonItemStyleBordered  target:self action:@selector(onSettingsClicked:)]; 
[self.navigationItem setRightBarButtonItem:rightBarButoom]; 

同樣適用於左UIBarButton。

+0

非常感謝,但我得到一個警告:「未聲明的選擇器'onSettingsClicked'以及一個錯誤:」使用未聲明的標識符'rightBarButoom' 「正如我前面提到的,我絕不是一個編碼器,我只是不知道這是什麼意思。 – Mariooo 2014-09-22 15:15:25

+0

嘿它是一個選擇器,你必須聲明 – BSKANIA 2014-09-22 15:19:44

+0

我已經嘗試谷歌它,但我似乎無法理解這意味着什麼,從我到目前爲止,我必須調用方法的名稱,對嗎?所以,我必須首先爲按鈕創建一個方法嗎? – Mariooo 2014-09-22 16:05:01

相關問題