iOS 更改导航栏取消按钮的背景图像

标签 ios uinavigationcontroller uibarbuttonitem

我有一个从相机胶卷中提取的 UIImagePickerController。

在导航栏中,有一个默认的UIBarButtonItem用于取消选择照片,但它与我的应用程序根本不匹配!

如何更改它的外观甚至隐藏它,然后将我自己的按钮放在导航栏中它的位置?

使用“后退”按钮可以轻松完成此操作,如下所示:

// Change the appearance of back button
UIImage *backButtonImage = [[UIImage imageNamed:@"back_button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 10, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

似乎没有 UIBarButtonItem 的 setCancelButtonBackgroundImage 方法。

最佳答案

这个怎么样:

UIImage * cancelButtonImage = [UIImage imageNamed:@"cancel_button.png"];
UIButton * cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cancelButton setFrame:(CGRect){CGPointZero, hamburgerImage.size}];
[cancelButton setImage:cancelButtonImage forState:UIControlStateNormal];
[cancelButton addTarget:self
                 action:@selector(cancel:)
       forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * cancelButtonItem = [[UIBarButtonItem alloc] initWithCustomView:cancelButton];
[self.navigationItem setLeftBarButtonItem:cancelButtonItem];

关于iOS 更改导航栏取消按钮的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648639/

相关文章:

ios - 如何在 UINavigationController 中的单个 View 上强制使用特定的 UIInterfaceOrientation?

ios - 如何在使用 UIPageViewController 时将 UIBarButtonItem 添加到 NavigationBar

Objective-C:引用创建类的类

ios - UIBarButtonItem 高亮选择器?

ios - 如何在所有设备中使用 swift4 在 CollectionView 中显示三列

ios - 想要使用 Scenekit 更改节点的 y 值

iphone - 自定义 UIBarButtonItem 的事件区域更小

ios - UIBarButtonItem 让我的 iPhone 应用崩溃

ios - 具有默认操作的可滑动表格 View 单元格

ios - iOs 上的 loadURL 和 javascript - 无法传递字符串