iOS 奇妙bug集锦

1. 奇妙的字体bug

最近设计师想要使用某款非系统字体的数字字体,想了个办法把数字字体提取出来(提取工具是fontZip,提取完才7KB)放到项目中,正常运行,但到组里其他人的电脑上就会遇到iOS10以下的模拟器,UILabel加载这个字体后,只要涉及到渲染的API(比如sizeToFit)就会崩溃,崩溃是停在类似于以下错误的地方

CHECK_RANGE_INDEX: 95 not in range (16 - 0), interpreter value out of range(glyph = 1)

而且最惨的是真机也会...一开始没想到是字体的问题就各种断点,最后发现是自定义字体的问题,在他们的电脑上运行,字体能正常加载,但就是渲染不了...很迷

于是又试了百度的fontmin-app提取就不会崩啦,百度这个提取完才3KB更小了

由于哪里都查不到有人遇到CHECK_RANGE_INDEX错误... 我估计这个错误是TextKit加载完素材和设置后(比如NSSTring,UILabel的各种属性),在渲染的时候渲染失败,在加载下一个位置的时候就越界了

2. 奇妙的UIGestureRecognizer bug

2018.7.17更新

最近在做一个图片浏览器,用到了一个collectionView来显示原图,由于习惯就在cell里面放了一个空白的UIGestureRecognizer做占位,等做完其他功能再来做双击缩放的功能,结果就遇到了一个奇怪的bug:

在图片不能移动的情况下滑来滑去,scrollView的滚动就会完全失效,查了半天以为是添加太多pan手势了,去掉所有pan手势还是会,最后发现就是那个占位的空白UIGestureRecognizer的锅,想了一下,在触发了空白的UIGestureRecognizer后,空白的UIGestureRecognizer应该是由于没有实现重新把它的state 变成 UIGestureRecognizerStatePossible这个操作,结果 导致所有其他手势都在等待它结束

3. 奇妙的UIScrollView bug

2018.7.28更新

最近还是在做类似于微信的图片浏览器,实现下拉dismiss的时候是通过控制CALayer的offsetTime来实现,想要控制offsetTime就需要把layer的speed设置为0

然后bug来了:后面取消dismiss后忘记把speed设置回来,导致在取消下拉dismiss后,双击缩放图片时,图片会不知道飞到哪里去,大概是因为UIScrollView的缩放是通过控制layer来实现的,由于speed为0导致动画无法进行就结束了所以就不知道飞到哪去了,把speed设置为1后就恢复正常

本栏目每周更新,如果没更新就说明我懒说明这周没有遇到什么奇妙的bug

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值