UINavigationBar自定义导航栏背景和按钮,完美支持横屏竖屏旋转,视图控制器可以分别使用自己的导航栏
此方法可以通过Apple审核,导航上的按钮背景需要做,否则看起来不那么和之又谐
//CustomNavigationBar.h
@interface UINavigationBar (UINavigationBarCategory)
UIImageView *backgroundView;
- (void)setBackgroundImage:(UIImage*)image;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
@end
//CustomNavigationBar.m
@implementation UINavigationBar (UINavigationBarCategory)
-(void)setBackgroundImage:(UIImage*)image
{
if(image == nil)
{
[backgroundView removeFromSuperview];
}
else
{
backgroundView = [[UIImageView alloc] initWithImage:image];
backgroundView.tag = 1;
backgroundView.frame = CGRectMake(0.f, 0.f, self.frame.size.width, self.frame.size.height);
backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:backgroundView];
[self sendSubviewToBack:backgroundView];
[backgroundView release];
}
}
//for other views
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
{
[super insertSubview:view atIndex:index];
[self sendSubviewToBack:backgroundView];
}
@end
//YourViewController.m
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController.navigationBar
setBackgroundImage:[UIImage imageNamed:@"navigation_bar_bg.png"]];
}
转自:http://xyyk.iteye.com/blog/739972
分享到:
相关推荐
在实际开发中,为了方便复用这些自定义效果,建议将相关的配置封装到一个类别或扩展中,例如创建一个UINavigationBar+Customization.swift文件,将所有的自定义代码集中管理。这样可以提高代码的可维护性和可重用性...
默认情况下,它有一个半透明的背景,但开发者可以根据需求为其设置自定义背景图片。这可以通过以下步骤实现: 1. 创建或选择一张适合用作`NavigationBar`背景的图片。确保图片尺寸符合`NavigationBar`的常规高度...
通过阅读和理解这个文件,开发者可以学习如何在实际项目中实现自定义的导航栏,包括自定义背景、按钮样式以及适配不同iOS版本。这不仅能够提高应用的视觉吸引力,还可以增强用户体验,尤其是在需要与系统默认样式...
6. **适配不同设备和方向**:确保在不同屏幕尺寸(iPhone和iPad)以及横竖屏切换时,自定义的`NavigationBar`依然能正常工作。 在压缩包中的“自定义NavigationBar_01”可能是项目的第一部分,可能包含了初始化...
7. **自定义背景和标题**:可以通过重写`UINavigationBar`的`drawRect:`方法来自定义背景颜色、渐变、图片等。同时,`UINavigationItem`的`title`和`titleView`属性可以用来改变标题的文本和显示方式。 8. **适配...
`UINavigationBar`通常包含一个标题,左侧和右侧的按钮,以及可能的自定义视图。这篇博客文章可能会深入探讨`UINavigationBar`的层次结构,并通过一个简单的实例源码来展示如何自定义和操作这个组件。 首先,`...
总之,STNavigationBar通过源码的形式提供了一系列对UINavigationBar的增强功能,包括但不限于自定义背景、标题、返回按钮、过渡动画以及夜间模式的支持。这些特性让开发者在实现iOS应用的界面设计时拥有更高的自由...
`UINavigationBar`通常出现在`UINavigationController`的顶部,显示标题、返回按钮和其他自定义视图。在这个名为“ios-UINavigationBar.zip”的压缩包中,包含了一个名为“DLNavigationBar-master”的项目,该项目由...
在本资源"(0013)-iOS/iPhone/iPAD/iPod源代码-导航条(Navigation Bar)-NavBar"中,重点讲述了如何自定义UINavigationBar以及在其中添加各种元素,如按钮和Segments等。 首先,UINavigationBar是UIKit框架中...
系统默认的导航栏具有一定的样式和行为,如白色背景、半透明效果以及可以滑动隐藏的特性。 在自定义导航栏的过程中,我们可以关注以下几个关键知识点: 1. **颜色定制**:系统默认的导航栏颜色是白色,但我们可以...
例如,可以自定义导航栏的背景色、标题文字样式、左右按钮等。要实现自定义导航栏,你可以: 1. 使用`appearance`代理方法统一设置所有导航栏的样式。 2. 在每个ViewController中重写`navigationBar:didPopItem:`...
2. **自定义导航栏背景**: 通过UIAppearance设置UINavigationBar的barTintColor属性,或者创建一个自定义背景图片。 3. **自定义UIBarButtonItem**: 可以通过设置tintColor改变按钮的颜色,或者创建自定义的按钮图像...
通过深入理解`UITabBarController`和`UINavigationController`的工作原理,以及熟练运用自定义视图和按钮,可以轻松实现这些自定义功能。在实际开发中,一定要注意保持代码的可维护性和扩展性,以便在未来的需求变化...
开发者可以通过自定义`UINavigationBar`的外观,如背景颜色、标题样式、按钮图标等,来创建独特的界面风格。 - 在iOS 5、iOS 6和iOS 7中,系统默认的`UINavigationBar`样式有所差异,因此自定义代码需要考虑到这些...
1. **外观定制**:开发者可能通过重写`UINavigationBar`的`drawRect:`方法或者使用`UIAppearance`协议来改变导航栏的颜色、背景图片、标题样式、按钮样式等。例如,可以自定义导航栏的背景为透明,或者添加动态的...
总结起来,自定义导航栏包括了对UINavigationBar的外观定制,如背景色渐变,以及对UIBarButtonItem和UINavigationItem的使用,实现左右中三个区域的按钮布局。这个过程涉及到iOS UI设计原则,以及对Swift或Objective...
本篇文章将深入探讨如何实现iOS导航的各种自定义样式,包括隐藏导航栏以及实现其各种变化效果。 一、自定义导航栏颜色 默认情况下,导航栏背景色为白色,文字颜色为黑色。我们可以通过以下代码来改变这些属性: ``...
3. 用`UIImage`绘制背景:如果需要自定义背景,可以创建一个`UIImage`对象,然后设置`navigationBar.barTintColor`属性。 4. 动画效果:可以通过修改`navigationBar.translucent`属性和`shadowImage`来实现过渡动画...
通常,会有一个专门的类别(Category)文件来扩展UINavigationBar,以及一些配置和设置自定义导航栏样式的代码文件。 5. **注意事项**: - 在自定义导航栏时,需确保兼容不同设备的屏幕尺寸和方向。 - 考虑状态栏...