加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中设置自定义tabBar按钮的动画效果

发布时间:2020-12-14 06:39:53 所属栏目:百科 来源:网络整理
导读:将此段代码放到自定义的UITabBarController脚本中即可 //---------------------------------------------------- // 当点击tabBar的时候,自动执行该代理方法(不需要手动设置代理) override func tabBar(_ tabBar: UITabBar,didSelect item: UITabBarItem) {

将此段代码放到自定义的UITabBarController脚本中即可

 //----------------------------------------------------
    // 当点击tabBar的时候,自动执行该代理方法(不需要手动设置代理)
    override func tabBar(_ tabBar: UITabBar,didSelect item: UITabBarItem) {
        // 使用枚举遍历,判断选中的tabBarItem等于数组中的第几个
        for (k,v) in (tabBar.items?.enumerated())! {
            if v == item {
                // 打印选中的iteme下标
                print(k)
                // 将下标传入动画方法
                animationWithIndex(index: k)
            }
        }
    }
    //----------------------------------------------------
    // 动画方法
    func animationWithIndex(index:Int){
        // 不知为何,无法设置数组类型为UITabBarButton??????所以设置成了Any
        var tabbarbuttonArray:[Any] = [Any]()
        
        for tabBarBtn in self.tabBar.subviews {
            if tabBarBtn.isKind(of: NSClassFromString("UITabBarButton")!) {
                tabbarbuttonArray.append(tabBarBtn)
            }
        }
        //----------------------------------------------------
        let pulse = CABasicAnimation(keyPath: "transform.scale")
        pulse.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseInEaSEOut)
        pulse.duration = 0.08
        pulse.repeatCount = 1
        pulse.autoreverses = true
        pulse.fromValue = 0.7
        pulse.toValue = 1.3
        
        // 给tabBarButton添加动画效果
        let tabBarLayer = (tabbarbuttonArray[index] as AnyObject).layer
        tabBarLayer?.add(pulse,forKey: nil)

    }
    //----------------------------------------------------

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读