ios – 自定义UIBarButtonItem

前端之家收集整理的这篇文章主要介绍了ios – 自定义UIBarButtonItem前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个自定义UIBarbuttonItem,它只使用一个透明度的png,这样我只有一个图标作为按钮.当我尝试设置按钮图像时,将背景设置为白色,并将样式设置为“平原”,我仍然会在其周围获得内部阴影和黑色边框.

是什么赋予了?

我尝试了下面的代码,它仍然围绕它的黑色边框.

UIImage *background = [UIImage imageNamed:@"Dismiss_normal.png"];
UIImage *backgroundSelected = [UIImage imageNamed:@"Dismiss_selected.png"];
self.closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.closeButton addTarget:self action:@selector(closeButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; //adding action
[self.closeButton setBackgroundImage:background forState:UIControlStateNormal];
[self.closeButton setBackgroundImage:backgroundSelected forState:UIControlStateSelected];
self.closeButton.frame = CGRectMake(0,background.size.width,background.size.height);
self.closeButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.closeButton];
self.navigationItem.leftBarButtonItem = self.closeButtonItem;

我注意到的是,如果我做一个模态segue按钮,上面的代码仍然有一个黑色边框,但如果我做推送segue它不? WTF?

解决方法

我理解你的问题.

实际推送UIViewController时,它将成为现有UINavigationController的一部分.因此UINavigationBar保留.但是当你使用ModalViewController时,它只是另一种“添加”到现有UIViewController的UIViewController.所以UINavigationBar不会存在.

但是你可以从xib添加另一个UINavigationBar并添加一个UIButton.但是不要直接添加UIButton,如果这样做,它会自动转换为UIBarButton,使其边界化.

所以首先将普通的UIButton拖到你的UIView(不是导航栏).将其更改为自定义并使用Attribute Inspector将UIImage添加到其中.然后将该图像拖到自定义创建的UINavigationBar中.它会像我刚才尝试的那样工作.您可以看到下面附带的屏幕截图.

猜你在找的iOS相关文章