2016-08-14 63 views
0

我使用navigtaionItem的leftItemsSupplementBackButton設置後退按鈕,然後將UIBarButtonItem設置爲我的leftBarButton。 問題是該按鈕離後退按鈕太遠。我怎樣才能控制它的位置並使其靠近後退按鈕?UIBarButtonItem離後退按鈕

下面的示例代碼設置後退按鈕和左側欄按鈕項目。

UIBarButtonItem* bla = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"delete"] style:UIBarButtonItemStyleDone target:self action:nil]; 
self.navigationItem.leftItemsSupplementBackButton = YES; 
self.navigationItem.leftBarButtonItem = bla; 

請查看附件截圖。 enter image description here

謝謝!

回答

0

試試這個,並根據需要更改值(CGFloat left)。

//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) 
    self.navigationItem.leftBarButtonItem.imageInsets = UIEdgeInsetsMake(0, -25, 0, 0); 
0

你應該添加此語句下面的代碼:

[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(0, -40, 0, 0)];//may be not -40 ,you can alter this argument. 
          //UIEdgeInsetsMake(topMargin, leftMargin,buttomMargin,rightMargin) 

這樣的:

enter image description here

最好的方式來學習這種方法是使用它!

所以,你應該不同的參數傳遞給該方法' setImageInsets:(UIEdgeInset)',像這樣:

//UIEdgeInsetsMake(topMargin, leftMargin,buttomMargin,rightMargin) 
[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(-50, 0, 0, 0)]; 
[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(0, -50, 0, 0)]; 
[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(0, 0, 50, 0)]; 
[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(0, 0, 0, 50)]; 

當你發現你的圖像的形狀發生改變,請參閱以下:

如果你發現你self.navigationItem.leftBarButtonItem的圖像形狀發生變化,您應該這樣編碼:

[self.navigationItem.leftBarButtonItem setImageInsets:UIEdgeInsetsMake(0, -40, 0, 40)]; 

的原因是: enter image description here

希望它可以幫助你!