我已经审核了几乎所有与自定义NavigationBar
相关的操作系统问题,但无法找到有用的解决方案。请看下面的截图,
红色部分表示navigationBar中心的图标(小图片)。
请提出一些解决方案。提前致谢。
编辑:我想在应用中为所有UINavigationBar
实施该功能。我的意思是每个视图
注意:我不知道是谁在投票我的问题,但我想向这些人提问。你对我的问题有什么解决方案吗?如果没有,那你为什么要投票我的问题呢?我不会以这种方式获得帮助。这完全错了。
答案 0 :(得分:2)
您可以继承UINavigationBar。
#import "VSNavigationBar.h"
@interface VSNavigationBar ()
@property (nonatomic, weak) UIView *noseView;
@end
@implementation VSNavigationBar
-(void)layoutSubviews
{
[super layoutSubviews];
static CGFloat width = 80;
if (!_noseView) {
UIView *noseView = [[UIView alloc] initWithFrame:CGRectMake(self.bounds.size.width / 2 - width / 2, 0, width, width)];
self.noseView = noseView;
self.noseView.backgroundColor = self.barTintColor;
self.noseView.layer.cornerRadius = self.noseView.frame.size.width / 2;
[self addSubview:_noseView];
}
_noseView.frame = CGRectMake(self.bounds.size.width / 2 - width / 2, 0, width, width);
}
@end
在故事板中,您将选择NavigationController场景,在左侧的树视图中选择导航栏,在右侧选择身份检查器并将类更改为子类。
答案 1 :(得分:0)
您需要创建一个看起来像您提供的图像中心部分的图像并说 -
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];
self.navigationItem.titleView = image view;
如果您尝试获得类似于您提供的图像底部的圆形效果,那么您需要拥有与上面相同的图像并将其设置为导航栏的背景图像 -
[navigationBar setBackgroundImage:[UIImage imageNamed: @"yourImage"] forBarMetrics:UIBarMetricsDefault];