ios 小常识


** 加载image有两种方式 *
  • 1>[UIImage imageNamed:(NSString *)ImageName] 加载,适用于加载比较小的图片,需要缓存的图片和Assets里存放的图片(注意assets里的图片只能用这种方式加载)
  • 2>[UIImage imageWithContentFile:(NSString *)Path],这种方式适合用于加载不缓存在内存中的较大的图片,一般将此图片放在resource下,或者根目录下
** 开发遇到一个奇葩的问题*
  • 问题描述: 由于开发的需要用CABaseAnimation做了一个旋转的动画,结果出现一个很奇葩的问题,当有模态弹出VIewController时候,然后模态回去就回请求数据,(比如我们的产品中条件过滤模态弹出条件过滤,点击搜索就会模态弹回,然后请求数据,加载旋转的动画)但是问题来了,弹回的时候这个动画没有,经过各种尝试和偶然的发现一个属性 removeOnCompletion, 这是一个bool类型的属性,意思是是否在动画完成之后移除目标layer的动画,如果设为Yes,就是会在动画结束或者失效(active duration has passed. )就会移除,那么将此属性设为no,这个问题就解决了
  • 问题说明:找了官方文档也没说明这一点,网上查也没人具体分析过这个原因,我的理解是:1.当模态视图返回的时候这个旋转图已经加载了,这时模态弹回的动画还没开始,当模态弹回的动画一开始就会执行模态动画。从而将其他动画失效,没有设置removeOnCompletion,那就是默认为Yes这个时候就会移除目标layer的animations,这就没有动画了,一旦你设置为不移除那这个问题就解决了,经过验证发现不是这个推断被否决了,模态弹回的时候将其设为没有动画还是,没有旋转,2.那就是另外一种情况当当前视图不是动画所在的视图这个动画就会失效,如果没有设置那个属性就会被移除,总之就是动画已经失效

你可能感兴趣的:(ios 小常识)