2011-06-15 67 views
8

的頂部和底部看一看的Droplr iPhone應用程序:允許的UIBarButtonItem觸摸UINavigationBar的

enter image description here

通知的UIBarButtonItem S如何能夠觸及的左,右,上,下屏幕/導航欄?

我該如何實現類似的功能?下面是我如何做一個樣品UIBarButton並將其設置爲正確項:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:image forState:UIControlStateNormal];  
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height); 
[button addTarget:self action:action forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *bb = [[[UIBarButtonItem alloc] initWithCustomView:button]autorelease]; 
[self.navigationItem setRightBarButtonItem:bb animated:YES]; 

然而,對準權,並具有從頂部&底部相當多的餘量。我的圖像大小是正確的(44px),它看起來像縮小它以適應一個框架。

那麼,我該怎麼做呢?


編輯:哎呦,頂部/底部的間距是我的錯。但是,我無法弄清楚如何將酒吧按鈕與左側/右側齊平。這就是我的意思是:(抱歉醜按鈕,這只是一個測試)

enter image description here

我嘗試設置圖像插入,但它似乎並沒有做任何事情。

回答

11
UIView *rightview = [[UIView alloc] initWithFrame:CGRectMake(0,0,30,30)]; 



UIButton *searchbutton = [[UIButton alloc] initWithFrame:CGRectMake(2,2,50, 30)]; 
[searchbutton setImage:[UIImage imageNamed:@"some-pic.png"] forState: UIControlStateNormal]; 
[rightview addSubview:searchbutton]; 


UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:rightview]; 
self.navigationItem.rightBarButtonItem = customItem; 
[customItem release]; 

我使用customBar的rightBarButtonItem,我得到它右對齊。 只需嘗試一下CGRectMake-Numbers爲x座標,爲測試我添加到高數字...

+0

工作很好,謝謝! – 2011-06-15 16:58:05

+2

因此,基本上你可以嵌套視圖,並取代內部視圖以「抵消」邊距。包含視圖必須設置爲clipsToBounds = NO,但我想這是默認值? – 2012-06-19 07:30:54

+0

這種技術也可以克服標題視圖的'最大拼版寬度':我發現,當左側和右側項目都存在時,標題視圖被限制爲132點寬。在視圖內使用圖像視圖修復了它。 – 2012-06-19 07:32:07

相關問題