首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义UINavigationController UIToolbar背景图片

自定义UINavigationController UIToolbar背景图片是在iOS应用开发中,为了改变导航栏和工具栏的外观,而采用的一种方法。下面是一些关键步骤:

  1. 导入所需的框架和类:import UIKit
  2. 创建一个自定义的UINavigationController类,并重写viewDidLoad()方法:class CustomNavigationController: UINavigationController { override func viewDidLoad() { super.viewDidLoad() // 在这里添加自定义代码 } }
  3. 为UINavigationController和UIToolbar设置背景图片:// 设置导航栏背景图片 let navigationBarImage = UIImage(named: "navigation_bar_background") UINavigationBar.appearance().setBackgroundImage(navigationBarImage, for: .default) // 设置工具栏背景图片 let toolbarImage = UIImage(named: "toolbar_background") UIToolbar.appearance().setBackgroundImage(toolbarImage, forToolbarPosition: .any, barMetrics: .default)
  4. 如果需要,可以设置导航栏和工具栏的文本颜色和图标颜色:// 设置导航栏文本颜色 UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] // 设置导航栏图标颜色 UINavigationBar.appearance().tintColor = UIColor.white // 设置工具栏图标颜色 UIToolbar.appearance().tintColor = UIColor.white
  5. 在应用程序的主题中应用自定义样式:// 在AppDelegate.swift中,将根视图控制器更改为自定义导航控制器 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = CustomNavigationController(rootViewController: ViewController()) window?.makeKeyAndVisible() return true }

这样,您就可以在iOS应用中自定义UINavigationController和UIToolbar的背景图片了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem...和UIToolBarUINavigationController是将这些控件和UIViewController紧密的结合了起来,使用导航,我们的应用程序层次会更加分明,对controller的管理也更加方便...//my.oschina.net/u/2340880/blog/527706 UINavigationItem:http://my.oschina.net/u/2340880/blog/527781 UIToolBar...controller的管理         导航控制器是一个堆栈结构,只是其中管理的对象是controller,通过push与pop进行controller的切换,我们有两种方式可以创建导航控制器: //通过一个自定义的导航栏和工具栏创建导航控制器...setToolbarHidden:(BOOL)hidden animated:(BOOL)animated; //状态栏对象 @property(null_resettable,nonatomic,readonly) UIToolbar

1.8K20

UINavigationController 导航控制器概念属性方法

概念 UINavigationController 继承于 UIViewController 包含:viewcontrollers、NavigationBar、Toolbar 导航控制器是一个堆栈结构,...只是其中管理的对象是controller,通过push与pop进行controller的切换,UINavigationController是将这些控件(UINavigationBar,UINavigationItem...和UIToolBar)和UIViewController紧密的结合了起来 总结: NavigationController管理的东西: NavigationController管理多个Controller...getter=isToolbarHidden) BOOL toolbarHidden; 7、获取底部工具条 @property(null_resettable,nonatomic,readonly) UIToolbar...*navigationController; ---- 方法 1、创建导航控制器的两种方法 (1)通过一个自定义的导航栏和工具栏创建导航控制器 - (instancetype)initWithNavigationBarClass

2.1K60
  • 你可能需要为你的 APP 适配 iOS 11

    和滚动交互 滚动的时候,以下交互操作都是由UINavigationController负责调动的: UIsearchController搜索框效果更新 大标题效果的控制 Rubber banding效果...UIToolbar and UINavigationBar— Layout 在 iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...,自定义的bar button items、自定义的title都可以通过layout来表示尺寸。...Avoiding Zero-Sized Custom Views 自定义视图的size为0是因为你有一些模糊的约束布局。...要避免视图尺寸为0,可以从以下方面做: UINavigationBar 和 UIToolbar 提供位置 开发者则必须提供视图的size,有三种方式: 对宽度和高度的约束; 实现 intrinsicContentSize

    1.7K60

    iOS键盘、选取器上的工具栏

    在Android上键盘的完成按钮是自带的,但是iOS没有,所以需要开发者自行添加上去一个,这里就要用到工具栏UIToolbar。...很遗憾,选取器也没有自带这两个按钮,还是需要使用工具栏UIToolbar来做这两个按钮。 本文就根据实例来讲解怎么在键盘和选取器上添加工具栏按钮。...*topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width,...setInputAccessoryView:topView]; [topView setItems:buttonsArray]; } } 这里我们就给键盘上添加了一个工具栏,工具栏上有一个done按钮,按钮的背景图片就是那个小键盘图标...*)toolBar { if (_toolBar == nil) { _toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake

    1.5K10

    UINavigationController

    UINavigationController 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用 UINavigationController...的使用步骤 初始化UINavigationController 设置UIWindow的rootViewController为UINavigationController 根据具体情况,通过push方法添加对应个数的子控制器...UINavigationController以栈的形式保存子控制器 使用push方法能将某个控制器压入栈 - (void)pushViewController:(UIViewController...*rightBarButtonItem //右上角的视图 @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem; 清空导航条背景图片...// 清空导航条背景图片,系统判断当前是否为Nil,如果为nil,系统还是会自动生成一张背景图片 [self.navigationController.navigationBar setBackgroundImage

    1.4K60

    UI篇-UINavigationController之易忘补充

    设置导航栏的背景图片 (多见于导航背景颜色是渐变颜色,使用一张图片)但是这张图片设置好以后,所有的控件的Y坐标都会下移64,也就是说,这张图片会占用屏幕的64pt 高度的屏幕,而且无法被普通试图覆盖使用...但是当自定义返回按钮时,这种手动滑动返回的效果就没有了。...要自定义返回按钮,直接设置backBarButtonItem是不行的 UINavigationController view层级 ?...navigationItem navigationItem是UIViewController的一个属性,包含了当前页面导航栏上需要显示的全部信息,这个属性是为UINavigationController...因此UINavigationController的这两个属性通常情况下是一样,但也有可能不同。

    2.1K20

    iOS透明导航栏的平滑过渡(进阶版)引实现过程结

    现在问题已经讲完了,基于这些问题,我们自己来尝试实现一种更好的平滑过渡效果,不自定义导航栏,直接利用系统原生的导航栏,使用Category和Runtime的技术,达到这个效果: 代码可以在示例工程下载...(觉得有帮助的小伙伴请不吝加Star~):https://github.com/Cloudox/SmoothNavDemo 实现过程 其实我们的目的总结起来有三个: 1、不去自定义导航栏,就用系统原生的...打印的方法可以看这篇文章:传送门:iOS遍历打印所有子视图 从这些子view的类名能够大概猜出他们都是导航栏上的什么,让我们大胆猜测一下,_UIBarBackground 是背景视图,下属的 UIImageView 是背景图片...这样每个 ViewController 都可以管理自己的导航栏透明度,在这个新增属性的setter方法中,我们调用前面在在 UINavigationController 的Category 中添加的设置导航栏透明度的方法...Delegate - (void)navigationController:(UINavigationController *)navigationController willShowViewController

    3.1K40
    领券