ios - 如何防止自定义导航栏后退按钮图像拉伸(stretch)

标签 ios objective-c swift uinavigationcontroller

我使用以下代码为 navigationButton 中的后退按钮设置了自定义图像:

var backButtonImage : UIImage = UIImage(named: "back")!
       // backButtonImage = backButtonImage.resizableImageWithCapInsets(UIEdgeInsets(top: 0,left: 0 ,bottom: 0, right: 0), resizingMode: UIImageResizingMode.RawValue )
        UIBarButtonItem.appearance().setBackButtonBackgroundImage(backButtonImage, forState: .Normal, barMetrics: .Default)

问题是它会像这样拉伸(stretch)导航栏按钮图像:

enter image description here

我应该如何停止自动拉伸(stretch)图像?

谢谢

最佳答案

在 Objective C 上可以这样做,先单独创建一个按钮,然后添加到 bar 按钮中

UIImage *menuImage = [UIImage imageNamed:@"icon-main-normal.png"];
        UIButton *menu = [UIButton buttonWithType:UIButtonTypeCustom];
        menu.bounds =CGRectMake( 0, 0, 30, 30 );
        [menu setImage:menuImage forState:UIControlStateNormal];
        [menu addTarget:self action:@selector(backToHome) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *menuBtn = [[UIBarButtonItem alloc] initWithCustomView:menu];

        self.navigationItem.leftBarButtonItem = menuBtn;

你可以通过这个逻辑在 swift 上做到这一点

关于ios - 如何防止自定义导航栏后退按钮图像拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34022391/

相关文章:

ios - 'NSInvalidArgumentException',原因 : 'Sheet can not be presented because the view is not in a window

iphone - 使用深度缓冲区而不是模板缓冲区进行裁剪

ios - 如何为流媒体执行硬件加速的 H.264 编码和解码?

ios - 删除 Storyboard并使用 .xib 启动应用程序

objective-c - FTDI 与 USB 设备的通信 - Objective C

swift - 在 swift 2.2 中无法正确推断可选类型

swift - 映射函数重铸数组

iphone - 在 xcode 的 Storyboard 中添加和控制 View Controller

ios - 使用 "Next"作为返回键

ios - 在touchesBegan 和touchesEnded 之间是否有调用的方法?