1

我试图为我的应用导航栏设置一个自定义后退按钮。现在我正在使用这段代码来做到这一点:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"backbutton.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

这最终会扭曲我的图像并使其拉伸。它还会在其上添加文本。我将如何使它仅显示此图像?

这是图片:http ://thai-flashcards.info/images/arrow-blue-rounded-left.jpg?1303347394

4

2 回答 2

2

您正在寻找的是可拉伸的图像。

这应该让你整理出来:

http://idevrecipes.com/2010/12/08/stretchable-images-and-buttons/

编辑:看着你的形象,我认为这行不通。

您将不得不制作一个自定义 UIButton 并将您的后退按钮设置为该自定义按钮并自己处理 ViewController 弹出。

你会像这样制作/设置按钮。

UIImage *buttonImage = [UIImage imageNamed:@"mybuttonimage.png"];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
[doneButton addTarget:self action:@selector(goBack)forControlEvents:UIControlEventTouchUpInside];

[doneButton setImage:buttonImage forState:UIControlStateNormal];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithCustomView:doneButton];

    self.navigationItem.leftBarButtonItem = backButton;

你需要将你的方法添加到 goBack

-(void)goBack { // Go Back

    [self.navigationController popToViewController:
    [self.navigationController.viewControllers objectAtIndex:3] animated:YES];
}
于 2013-03-27T23:21:19.840 回答
2

didFinishLaunchingWithOptions下添加AppDelegate

UIImage *backBtnIcon = [UIImage imageNamed:@"back.png"];
UIImage *backButtonImage = [backBtnIcon resizableImageWithCapInsets:UIEdgeInsetsMake(0, backBtnIcon.size.width - 1, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault ];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -30) forBarMetrics:UIBarMetricsDefault];
于 2014-03-25T09:33:37.047 回答