想象一下: 左边的汉堡菜单,标题所在的图像,右边的另一个barButtonItem - 然后下面的三个按钮就像tabBarController,但它必须是无缝连接到一个UINavigationBar。
/// ----------------- title -----------------<>
BUTTON 1 BUTTON 2 BUTTON 3
如何实现这一目标?我在考虑创建一个自定义UINavigationBar。但是,如何将barButtonsItem下面的子视图添加到navigationBar?
非常感谢任何推动方向
答案 0 :(得分:1)
您不应该尝试自定义UINavigationBar。您可以创建扩展导航栏的外观,将视图放在导航栏的底部,禁用栏的半透明度,将栏的阴影图像设置为清晰图像,将其背景图像设置为纯色,然后绘制细线下落视图下方的阴影。然后,您可以将按钮添加到该按钮。例如,您可以在IB中设置视图,添加:
[self.navigationController.navigationBar setTranslucent:NO];
[self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"TransparentPixel"]];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Pixel"] forBarMetrics:UIBarMetricsDefault];
在视图控制器的viewDidLoad中,您需要扩展导航视图。然后在视图的UIView的子类中扩展导航栏,你可以说:
- (void)willMoveToWindow:(UIWindow *)newWindow
{
[self.layer setShadowOffset:CGSizeMake(0, 1.0f/UIScreen.mainScreen.scale)];
[self.layer setShadowRadius:0];
[self.layer setShadowColor:[UIColor blackColor].CGColor];
[self.layer setShadowOpacity:0.25f];
}
这可能仍有些令人困惑。幸运的是,Apple提供了带注释的sample code来向您展示如何做到这一点。