美文网首页
iOS 获取状态栏图标

iOS 获取状态栏图标

作者: F森 | 来源:发表于2017-04-12 13:24 被阅读60次

方式一:KVC

KVC是一个很好的东西,通过它往往可以做些不可思议的东西,比如访问对象的一些私有属性

利用这一点,我们可以获取到UIStatusBar

 UIApplication *app = [UIApplication sharedApplication];
 UIView *statusView = [app valueForKey:@"statusBar"];
 statusView.backgroundColor = [UIColor cyanColor];
  NSArray *subViews = [[statusView valueForKey:@"foregroundView"] subviews];

方式二:runtime

说思路,首先UIStatusBar这个类是可以访问的,不属于私有类,既然如此就可以利用runtime来做点东西!

1.使用runtime给UIStatusBar添加一个实例方法,这里暂且叫: instanceMethod

2.添加instanceMethod成功后,使用class_replaceMethod将instanceMethod与实例方法hook_ instanceMethod做替换

3.在实例方法hook_ instanceMethod中接收self,则该self即为UIStatusBar对象,这样我们就成功的拿到UIStatusBar对象

相关文章

  • iOS 根据状态栏判断网络状态

    通过顶部状态栏获取当前的网络状态 定义网络状态枚举 获取状态栏上的网络图标 参考这篇iOS 状态栏的图标 获取当前...

  • iOS 获取状态栏图标

    方式一:KVC KVC是一个很好的东西,通过它往往可以做些不可思议的东西,比如访问对象的一些私有属性 利用这一点,...

  • iOS 宏定义-获取状态栏、导航栏、tabBar高度

    iOS 宏定义-获取状态栏、导航栏、tabBar高度 获取状态栏、导航栏、tabBar高度 //获取状态栏的高度C...

  • iOS 有关WIFI讯息获取

    iOS 有关WIFI讯息获取 流量监测 获取wifi地址 获取wifi名称 从手机状态栏获取当前网络状态

  • iOS 状态栏的图标

    获取状态栏上的 view 数组 打印 subviews 就能看到状态栏上的图标数据 上面的是我的真机的打印结果,不...

  • iOS13 获取状态栏并设置颜色

    1.iOS12及以下获取状态栏的方法(此方法在iOS13会崩溃)UIView *statusBarView = [...

  • iOS9,iOS10 相关

    (一) iOS9及以上,工程支持http : (二)设置状态栏 (三) 关于版本 (四)iOS10 获取对应权...

  • iOS 状态栏

    1.什么是状态栏? iOS顶部的那一条显示网络、信号、电池等手机状态信息的一栏就是状态栏。 2.如何获取状态栏的高...

  • UI布局

    iOS 获取状态栏、导航栏、tabBar高度https://www.jianshu.com/p/507c89d45...

  • iOS 状态栏的总结

    【iOS 开发】Status Bar 状态栏设置汇总 状态栏 个人觉得 iOS 的 Status Bar 状态栏也...

网友评论

      本文标题:iOS 获取状态栏图标

      本文链接:https://www.haomeiwen.com/subject/gplmattx.html