2016-08-14 64 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

希望它可以帮助你!