索引目录——HBIndexMenu

HBIndexMenu 仿制自 汽车报价大全 的索引目录。

汽车报价大全 V7.4 首页

并在其基础上增加了对长文本目录的支持:


HBIndexMenu

配色实在太丑了点,请见谅,毕竟谁拿来用都会配上自己需要的颜色的。
源代码已经上传至GitHub


如果源代码和注释看不懂或者懒得看的,也可以听我多解释几句。

布局:

布局

从左往右依次代表我代码中所说的三种情况:

  1. 算上默认间隙,高度也足够,目录整体居中。
  2. 默认间隙过大,适当的减小间隙,高度才足够。
  3. 高度根本就不足,须重叠排列,首尾紧贴边界

间隙:

仔细看代码的同学可能会说,代码并没有严格按照布局图来布局。这点我承认。代码里面用了点投机取巧的办法,将间隙直接包含在标题的高度中初始化了,这样做不仅方便计算,而且更精确。真要像上面布局图布局的话,情况2中首尾标题有效点击范围会比其他标题略小,而超出边界的部分只能算作是有效滑动范围。

两个 MaxOffsetX 的关系:

MaxOffsetX

标题在首次赋值文本时,会缩小到刚好放下首字符的大小,且保持中心点不变。因此后续缩放过程中,X的最大偏移量将加上首次缩小的这段X的值。这么做只是为了后续缩放统一,自然。

掉过的坑:

最开始想通过设置不同的UIFont来达到缩放的效果,其结果却是缩放效果虽然能达到,但是内存却消耗巨大,滑动时,内存消耗见增不见减的。猜测是因为UIFont会缓存。这一点确实是之前没想到过的,切记切记。

其他地方应该还是比较容易理解了,有什么不足或谬误之处还请多多指正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,171评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,707评论 0 17
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,276评论 4 61
  • 转眼间的我已经到了20岁,20岁对我们这个年纪的人来说意味着什么呢,是结婚生子、选择一个适合自己的工作然后就这样过...
    永哲阅读 212评论 0 0
  • 到底要经历多少?才能真正走到这个世界让我们成长的尽头?或许根本没有尽头?只要存在,就要经历? 半夜突然醒来,因为一...
    金子dede阅读 355评论 20 2