地图显示路线详情滑动效果

这是我要做的需求


map.gif
  • 细化功能
    ☑️ 接入高德地图
    ✅ 通过偏移量改变透明度
    ✅ KVO监听实现路线视图frame的改变
    ✅ 滑动列表不影响地图点击
    ✅ 滑动结束根据偏移量确定列表最终位置(待优化)
    ☑️滑动结束更新地图边界
    ☑️点击路线视图自动切换列表偏移量(分三级)
    ☑️横向滑动路线视图并重新绘制地图路线

大概就这么多慢慢去实现

  说实话,就列表滑动这一块就卡了我一个多礼拜,然后我就看到了这个兄弟的Demo
  通过改变tableview的内边距,重写hitTest:(CGPoint)point withEvent:(UIEvent *)event方法,当pointy值小于0时,返回nil,这样就可以穿透tableview直接操作地图了。
  当偏移量达到屏幕中间再继续向上滑动时,才根据偏移量计算透明度。
  因为改变了内边距,所以显示路线的view就不能放在tableview上了。我的解决办法是,给tableview设置一个空白的headerview,用KVO监听tableview的偏移量并实时更新路线视图的frame
  实现列表滚动停止,根据偏移量来确定最终位置。我这里是将屏幕三等分作为阈值,当偏移量在屏幕上部三分之一时,列表最终会置顶。当偏移量在屏幕中间的三分之一时,列表会居中显示。当偏移量在屏幕下部三分之一时,列表会置底,只显示出路线视图。后期会根据百度地图来修改的。

详细的还是看代码吧,里面有详细的备注。
Demo地址
简书地址

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 第一章 少年轻狂 “死老头子,别磨蹭了,快起来,再不起来相不相信我会再踢你一脚。”一个长相有些清秀的少年,...
    陌生的云阅读 387评论 0 0
  • "有钱的男人和长得帅的男人,你都要不起。" 如果一个男人很有钱,但长得不帅; 另外一个男人长得很帅,但没有钱。 那...
    a_3dc5阅读 2,796评论 0 0
  • 帝都2016年的美好的前三天—元旦,雾霾也不放过,好不容易三天假期,大家在三天两头的雾霾侵袭下非常渴望有个好天气...
    雪兰忆香阅读 427评论 0 0
  • 一夜无惊无扰地睡了六个小时。只有她睡了我才能睡安宁。舒服了很多。九点半起来,做了套小腿按摩,收拾好自己,期间女儿催...
    我从世界轻轻走过阅读 100评论 0 0