iOS 自定义 仿苹果地图 半屏滑动效果控件

前言

在前一篇文章AI编程探索- iOS 实现类似苹果地图 App 中的半屏拉起效果我们通过三方库实现了这个功能。可是我发现这个三方不能加阴影效果。也许是我不知道怎么加吧!于是只有自己搞咯!

请添加图片描述

拆解功能

这功能给人在感觉上,有点麻烦,其实认真分析其中用到的技术点,你也会跟我一样发出灵魂拷问,就这?

  1. 圆角+阴影
  2. 平移手势
  3. 平移动画效果

圆角+阴影

  • 这功能已经老生常谈了,我还是在用比较古老的蠢办法。一个 View 加阴影,另一个View 加圆角。

平移手势

  • 实现上下拖拉响应区域,控件跟随手势上下移动的效果。
  • 添加平移手势
       let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
       touchView.addGestureRecognizer(panGesture)

  • 手势处理
 @objc func handlePan(_ gesture: UIPanGestureRecognizer) {
        let translation = gesture.translation(in: self.view)
        
        switch gesture.state {
        case .began, .changed:
            // 更新约束并添加动画效果
        case .ended, .cancelled, .failed:
            // 手势结束、取消或失败时重置平移量
            gesture.setTranslation(.zero, in: self.view)
            
        default:
            break
        }
    }

平移动画效果

  • 更新约束
  • 使用UIView 动画 + layoutIfNeeded 刷新布局 实现动画
  • 示例
       self.snp.updateConstraints { make in
                make.bottom.equalToSuperview().offset(tempY)
            }
 UIView.animat
年前在安卓区发了帖子[url=http://bbs.lbsyun.baidu.com/viewthread.php?tid=5432]【福利来了】高仿版百度地图例子,推荐大家学习![/url]反响很不错,现在本人的IOS版本制作完成,具有非常好、高的相似度,先看一下效果: http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=14284&page=1#pid59300 小伙伴们不好意思,本来这个嘛去年就已经写好了,但是花的心思远远超出了我的预期,而且到了年末,公司这边就忙了起来,把这事给放在一边了。最近不是出了Apple Watch嘛,更新完最新版的Xcode和iOS SDK之后,重新编译项目又出了错。。不过现在改好啦。。这是我的第一个用Objective-C写的完整的IOS程序,跟我原来上手安卓的时候一样,也是写的高仿版百度地图,[url=http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=2641&fromuid=19954]【福利来了】基于百度地图SDKv2.1.3开发的高仿版百度地图[/url],原来的项目名称叫test,原来的开发环境是Xcode 6.1 + iOS SDK 8.2 + 真机越狱的iPhone 4 + iOS 6.1.3,(老的华硕笔记本装的黑苹果性能太差,运行不了模拟器,很卡,而且不支持定位等,所以我是用免证书真机调试的),现在移植的环境是Xcode 6.2和iOS SDK 8.2,项目名称是IphoneMapSdkDemo,是官方demo的移植版,在真机iPhone 6 plus + iOS 8.2 上运行是成功的,在iPhone 4s和iPhone 6的模拟器上也是成功的。本人不才,当时还不会用Xcode内置的Interface Builder来设计界面,因此这是用纯代码写的,测试机子也只有iPhone4,没考虑其他iPhone的分辨率,在界面上是不适配的,但是代码的话还是值得学习的。废话不说先上代码! 代码打包后大小是15.3 MB,论坛文件限制大小只有4MB,没办法我只有传到CSDN上,设置下载分5分的原因是设置点障碍,防止新手乱下载,乱转载不注明出处,Android版当时就出现了这样的情况,我是支持大家相互交流的,但是剽窃他人的劳动成果是可耻的,我相信大部分的老鸟5分对他们来说是小意思,也希望大家能多多评论赚回分数,给我点意见和建议。 接下来简单介绍一下这里面包含的项目,在code4app.com和github.com上都有他们的开源下载,搜一下就有了 1、TKRounded 圆角 2、MBProgressHUD Version 0.9.1 MJ编译版 3、JMStaticContentTableViewController 表格 其他的代码有点编程基础的同学应该很快就能看懂了,毕竟我也是第一次写iOS程序的啊,我都行你们肯定行的!由于时间拖久了,现在最新版是iOS SDK v2.6.0,更新的内容也是不少,有强迫症的朋友请自行替换2.6.0的lib。iOS SDK v2.5.0好像没有语音识别和实景地图,还有其他的,哎,SDK就不是亲生的,跟官方版的百度地图功能差太多了! 如有问题请参照百度文档,或者联系我QQ472950043。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HH思️️无邪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值