关键方法。
if ([UINavigationBar instancesRespondToSelector:@selector(setShadowImage:)])
{
[[UINavigationBar appearance] setShadowImage:[UIImage imageWithColor:[UIColor clearColor] size:CGSizeMake(320, 3)]];
}
还有uiimage的一个类目方法。
下面是全部的代码。。。。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
Navbar *bar = (Navbar *)self.navigationController.navigationBar;
//关键是这几句。。。。。
[bar setTranslucent:NO];
if (IS_IOS_7) {
// [bar setTintColor:k_nav_bgColor];
// [bar setBarTintColor:k_nav_bgColor];
///用上面的两句话也挺好,但是会用下面的一条黑线。。。。。
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"aaaaa.png"] forBarMetrics:UIBarMetricsDefault];
}
}else{
[bar setBackgroundImage:kImageNamed(@"bg_nav.png") forBarMetrics:UIBarMetricsDefault];
[bar.layer setMasksToBounds:YES];
[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
}
// [self followScrollView:self.view]; //是否隐藏导航栏用的 。这个目前不能用,里面有代码
if ([UINavigationBar instancesRespondToSelector:@selector(setShadowImage:)])
{
[[UINavigationBarappearance] setShadowImage:[UIImageimageWithColor:[UIColorclearColor] size:CGSizeMake(320, 3)]];
}
}
给UIImage添加的类别
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
{
@autoreleasepool {
CGRect rect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context,
color.CGColor);
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
}
相关推荐
在iOS开发中,`UINavigationBar`是苹果提供的一个关键组件,用于展示应用程序中的导航层次结构。`UINavigationBar`通常出现在`UINavigationController`的顶部,显示标题、返回按钮和其他自定义视图。在这个名为“ios...
此外,对于iOS 13及以上版本,还可以使用appearance代理方法来全局修改所有UINavigationBar的颜色方案。 4. **滑动渐变样式**:为了在用户滚动内容时创造出动态的视觉效果,你可以实现滑动时导航栏颜色的渐变。这...
用swift写的一个UINavigationBar的扩展,总结可3种隐藏UINavigationBar的方式,代码的github下载地址:https://github.com/631106979/WCLHideNavBar,代码详解的博客地址:...大家觉得学到东西的可以给点个赞,有什么...
iOS如何去掉导航栏(UINavigationBar)下方的横线 iOS中的UINavigationBar是一个常用的导航栏控件,但是在某些情况下,我们可能需要去掉它下方的横线。那么,如何去掉iOS中的UINavigationBar下方的横线呢?本文将为...
- 在iOS 5、iOS 6和iOS 7中,系统默认的`UINavigationBar`样式有所差异,因此自定义代码需要考虑到这些差异,确保在不同版本上的表现一致。 2. iOS版本兼容性: - iOS 5、iOS 6和iOS 7分别具有不同的设计语言和...
这个名为"IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.7z"的压缩包文件包含了适用于这三个iOS版本的自定义`NavigationBar`的源代码。本文将详细讲解如何在不同iOS版本中实现自定义`NavigationBar...
下面将详细探讨iOS中自定义NavigationBar的相关知识点。 1. **iOS版本差异**: - iOS 5: 这是苹果引入Storyboards和Auto Layout的版本,但Auto Layout在初期并不完善。 - iOS 6: 自定义navigationBar主要是通过...
在iOS开发中,UINavigationBar是苹果提供的一个关键组件,用于展示应用的导航层次结构。在许多情况下,开发者需要自定义UINavigationBar的外观和行为,例如改变左右按钮的样式或者扩展其功能。本篇文章将深入探讨...
这份名为"ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar源代码设计资料"的资源,提供了在不同iOS版本上创建自定义导航栏的详细指导和源代码示例。 在iOS 5、iOS 6和iOS 7中,虽然`UINavigationController`的`...
在iOS应用开发中,UINavigationBar是苹果UIKit框架中的一个重要组件,主要用于展示应用程序的标题以及导航功能。在本文中,我们将深入探讨如何在iOS入门开发过程中创建和使用UINavigationBar,以便为用户提供清晰的...
在iOS开发中,创建一个能够显示正在播放状态的View,特别是在音乐播放应用的UINavigationBar上,是一个常见的需求。这个项目“ios-正在播放的View,常见于音乐播放的UINavigationBar上”由edisongz在GitHub上开源,...
一个像微信那样有追求的 UINavigationBar, 阴影,透明度,是否隐藏,背景颜色平滑过渡。兼容来电模式,兼容 到 iOS 8。 详情请移步 GitHub: https://github.com/listenzz/HBDNavigationBar
UINavigationBar-FixedHeightWhenStatusBarHidden 通常,在iOS 7+上,显示状态栏时,导航栏的高度等于64 px。 隐藏后,高度默认更改为44像素。 此类别将属性fixedHeightWhenStatusBarHidden添加到UINavigationBar类...
在iOS中,我们通常使用UINavigationController来管理导航栈,并通过设置UINavigationBar的属性来改变其外观。例如,可以自定义导航栏的背景色、标题文字样式、左右按钮等。要实现自定义导航栏,你可以: 1. 使用`...
在iOS应用开发中,UINavigationBar和UIToolBar是两种重要的界面元素,它们分别用于实现导航功能和展示快捷操作。接下来我们将深入解析这两个组件的关键点。 首先,UINavigationBar是导航控制器...
高仿客路旅游APP的UINavigationBar的扩展使用。欢迎大家互相学习,感觉不错给个星星。github: https://github.com/STShenZhaoliang/STNavigationBar