所以,这就是我想要实现的目标:
![That's how it should look](https://i.stack.imgur.com/0L5tI.png)
It's a UINavigationBar
with a UIBarButtonItem
使用自定义初始化UIButton
.
基本上是这样的:
UIButton *favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom];
[favoriteButton addTarget:target
action:action
forControlEvents:UIControlEventTouchUpInside];
favoriteButton.frame = CGRectMake(0.0f, 0.0f, 44.0f, 44.0f);
UIImage *backgroundImage = [[UIImage imageNamed:@"favorite-button-background-orange"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 0)];
[favoriteButton setBackgroundImage:backgroundImage
forState:UIControlStateNormal];
UIBarButtonItem *favoriteButtonItem = [[UIBarButtonItem alloc] initWithCustomView:favoriteButton];
问题是我似乎无法摆脱右侧那个令人讨厌的小边框UINavigationBar
.
![That's how it looks](https://i.stack.imgur.com/ullIh.png)
我尝试设置自定义TitleView
如“如何删除 UIBarButtonItem 旁边的填充“但这并没有改变什么。
我还尝试添加另一个具有负宽度的 UIBarButtonItem (如我读过的一些博文中所建议的),但这也没有帮助。
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
action:nil];
negativeSpacer.width = -5.0f;
self.navigationItem.rightBarButtonItems = %[favoriteButtonItem, negativeSpacer];
我认为 iOS 不会让我更改它,因为“圆形边框”保留了一些(不可避免的?)空间/填充?
所以我的问题是。我应该如何解决这个限制?我需要创建自定义吗UINavigationBar
班级?我可以通过修改来伪造它吗UIBarButtonItem
?我只是使用了错误的组件吗?