iOS 获取状态栏图标

方式一: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对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,883评论 0 9
  • 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的...
    西木阅读 30,751评论 33 466
  • 本文转载自:http://yulingtianxia.com/blog/2014/11/05/objective-...
    ant_flex阅读 4,183评论 0 1
  • 今天又开始去分析。那些我们知道的普通的人的成长,其实也不是一步到位的。 她原本就是销售,有独到的见解和销售技巧,她...
    娟娟Cyndi阅读 2,985评论 0 0
  • 何以解忧 唯有东野圭吾 日本著名作家东野圭吾的《解忧杂货店》,出版当年即获中央公论文艺奖。作品超越推理小说的范围,...
    李大嘴和她的尖货阅读 5,022评论 9 5

友情链接更多精彩内容