-[CAGradientLayer _clearContents]: unrecognized selector sent to instance 0x280aa2b60

最近Bugly上记录了一个关于关于CAGradientLayer _clearContents的崩溃日志,并且全部只在iPhone Xs Max机型上出现。进过排查发现是项目中有人使用了rumtime,给UIView添加了一个Category,添加渐变色,使用到CAGradientLayer这个类,在该Category中重写了系统的方法layerClass导致,重写系统方法导致了项目所有UIView的layerClass方法被重写,返回的是一个 [CAGradientLayer class]的类。

+ (Class)layerClass {
    return [CAGradientLayer class];
}

解决方法:不使用该Category,注释掉重写的layerClass方法。不通过这种方式的来到一个渐变效果。直接使用CAGradientLayer这个类就可以满足得到渐变色的效果。CAGradientLayer的用法自行百度。

注:开发中尽量不要重写系统的方法,重写系统方法会导致整个项目中的某些系统方法被修改了,导致一些错误。

推荐阅读更多精彩内容

  • 重点参考链接: View Programming Guide for iOS https://developer....
    Kevin_Junbaozi阅读 2,549评论 0 15
  • Code AZTools 使用效果 常规方案 说起颜色渐变一般来说有两种实现方式,一是使用CAGradientLa...
    水暮竹妖阅读 19,440评论 34 56
  • 【读懂一本书5—8】 【字数】499 【总】讲书三部曲 走好三步,收获芳心无数。 分1:先声夺人 构建坡道,从最打...
    大瑜阅读 70评论 3 2
  • 情感账户,是人际关系的一种比喻,这个账户里存的是信任,价值,情感。所谓的人际关系处理,本质上就是在情感账户里的存款...
    FineYoga谷亚军阅读 73评论 4 2
  • 在一次盛大的舞会上,实话先生见到一位风韵犹存的老女人,主动走过去向她行礼,然后说:“您使我想起您年轻的时候。”老女...
    op牵绊阅读 547评论 0 0