初识runtime

算算代码写了一段时间,从去年的6月份到今年的11月.从一个毛头小子,碰见问题只能选择求助,到现在能独立处理问题.我想我是热爱的代码的,感觉终于找到了一个喜欢的事情.毕业之后,第一份关于代码的工作竟然是独立开发,不可能的任务,可是竟然奇迹般的挺过来了,如果没有热情想必也是办不到了.我的热情竟然在这里生根发芽了.

我清醒的意识到了自己心态的转变,越来越想挖掘语言本质的东西用别人写的东西,更喜欢研究为什么他们要这么设计.有了这些铺垫,我顺利的接触到了runtime,像是发现了一个宝藏.下面写个小的应用场景.用类别加runtime修改navigationbar的颜色.


.h声明:

#import

@interfaceUINavigationBar (SetColor)

- (void)become_backgroundColor:(UIColor*)backgroudColor;

@end


.m实现:

#import"UINavigationBar+SetColor.h"

#import

staticcharbackViewKey;

@interfaceUINavigationBar()

@property(nonatomic,strong)UIView*backView;

@end

@implementationUINavigationBar (SetColor)

- (UIView*)backView

{

returnobjc_getAssociatedObject(self, &backViewKey);

}

- (void)setBackView:(UIView*)backView

{

objc_setAssociatedObject(self, &backViewKey, backView,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

- (void)become_backgroundColor:(UIColor*)backgroudColor

{

if(!self.backView) {

[selfsetBackgroundImage:[UIImagenew]forBarMetrics:UIBarMetricsDefault];

self.backView= [[UIViewalloc]initWithFrame:CGRectMake(0, -20, [UIScreenmainScreen].bounds.size.width,self.bounds.size.height+20)];

self.backView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;

self.backView.userInteractionEnabled=NO;

[selfinsertSubview:self.backViewatIndex:0];

}

self.backView.backgroundColor= backgroudColor;

}

@end

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

相关阅读更多精彩内容

  • VLC的集成和使用 VLC介绍 VLC Media Player (VideoLAN) 为 Windows、Lin...
    Pocket阅读 20,282评论 75 66
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,244评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,677评论 6 30
  • iOS开发中,页面传值是很常见的,但是页面传值你究竟知道多少呢?笔者这篇文章就是给大家介绍一下页面传值的具体方式,...
    蒲公英少年带我飞阅读 2,251评论 10 45
  • 本篇文章主要介绍如何让您的iPhone最大限度地实现它的使用价值,告别小白板,而且实用、简洁。 widget快捷启...
    乜乜麒阅读 608评论 0 0

友情链接更多精彩内容