如何更改iOS上后退按钮的位置?

Pra*_*rad 5 iphone objective-c back-button uinavigationcontroller ios

您看到我正在创建一个完全自定义的导航栏,当我创建后退按钮时,它不会保留在正确的位置,因为您可以在代码下方看到.

这是我的应用程序代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    if(self.navigationController.viewControllers.count > 1) {
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setTitle:@"" forState:UIControlStateNormal];
    [backButton setBackgroundImage:[UIImage imageNamed:@"backButton.png"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside];
    backButton.frame = CGRectMake(0.0f, 0.0f, 44.0f, 45.0f);
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    self.navigationItem.leftBarButtonItem = backButtonItem;
}
Run Code Online (Sandbox Code Playgroud)

}

图片http://s8.postimage.org/k5faqz0jp/Scr​​een_Shot_2013_01_24_at_5_30_10_PM.png

小智 6

我认为你可以修改contentEdgeInsets来定位按钮的位置.

像这样的东西:

[backButton setContentEdgeInsets:UIEdgeInsetsMake(5,0,-5,0)];

来自UIButton Class Reference

contentEdgeInsets

围绕所有按钮内容的矩形的插入或开始边距.

@property(非原子)UIEdgeInsets contentEdgeInsets

讨论使用此属性可以调整按钮内容的有效绘图矩形并重新定位.内容包括按钮图像和按钮标题.您可以为四个插图(顶部,左侧,底部,右侧)中的每一个指定不同的值.正值会缩小或缩小,使其靠近按钮的中心.负值会扩展或偏离该边缘.使用UIEdgeInsetsMake函数为此属性构造值.默认值为UIEdgeInsetsZero.