第三十八篇给uitabbar按钮的动画效果

久冬不雨 久冬不雨     2022-08-07     739

关键词:

 在很多情况下,我们也时常有这样的需求,就是在UITabBar切换的时候,添加一些动画效果

 

1.在UITabBar触发点击方法的时候捕获当前点击的item

2.使用coreAnimation设置动画效果

 

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {

    NSInteger index = [self.tabBar.items indexOfObject:item];

    if (self.indexFlag != index) {
        [self animationWithIndex:index];
    }

}
// 动画
- (void)animationWithIndex:(NSInteger) index {
    NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
    for (UIView *tabBarButton in self.tabBar.subviews) {
        if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
            [tabbarbuttonArray addObject:tabBarButton];
        }
    }
    CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    pulse.duration = 0.08;
    pulse.repeatCount= 1;
    pulse.autoreverses= YES;
    pulse.fromValue= [NSNumber numberWithFloat:0.7];
    pulse.toValue= [NSNumber numberWithFloat:1.3];
    [[tabbarbuttonArray[index] layer]
     addAnimation:pulse forKey:nil];

    self.indexFlag = index;

}

 

第三十八篇vue(代码片段)

概述Vue在大多数常见场景下性能都是很优秀的,通常不需要手动优化。然而,总会有一些具有挑战性的场景需要进行针对性的微调。在本节中,我们将讨论用Vue开发的应用在性能方面该注意些什么首先,让我们区分一下web应用性... 查看详情

wpf效果第一百七十八篇itemscontrol旋转

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖... 查看详情

开始写游戏---第二十八篇

开始写游戏---第二十八篇  今天:    1、添加:物品奖励组件    2、添加:物品信息弹框组件    3、碰到BUG,现在被卡住了    上图:    1、添加:物品奖励组件          效果:   ... 查看详情

wpf学习第三十八章行为(代码片段)

原文:【WPF学习】第三十八章行为  样式提供了重用一组属性设置的实用方法。它们为帮助构建一致的、组织良好的界面迈出了重要的第一步——但是它们也是有许多限制。  问题是在典型的应用程序中,属性设置仅是用户... 查看详情

第三十八天

文档流<!DOCTYPEhtml><html><head> <metacharset="UTF-8"> <title>文档流</title> <styletype="text/css">  .box   width:200px;&nb 查看详情

wpf学习第三十八章行为(代码片段)

  样式提供了重用一组属性设置的实用方法。它们为帮助构建一致的、组织良好的界面迈出了重要的第一步——但是它们也是有许多限制。  问题是在典型的应用程序中,属性设置仅是用户界面基础结构的一小部分。... 查看详情

第三十八课qt中的事件处理(上)

一、图形界面应用程序的消息处理模型二、Qt的事件处理1、Qt平台将系统产生的消息转换为Qt事件(每一个系统消息对象Qt平台的一个事件)(1)、Qt事件是一个QEvent的对象(2)、Qt事件用于描述程序内部或者外部发生的动作(3... 查看详情

第十八篇:questionanswering问答系统

目录介绍事实问题非事实问题为什么我们关注NLP中的事实问题?2种关键方法大纲IR-basedQA基于IR的事实(Factoid)QA:TREC-QA问题处理答案类型检索答案提取如何?MCTestSQuAD阅读理解基于LSTM的模型基于BERT的模型为什么BERT比LST... 查看详情

-考研第三十八周总结-

-考研第三十八周总结-【本周完成】✅数学:李林第3、4、5套卷;17、18年数学;英语;17年卷子、2016完型,12年大小作文专业课:17年卷子;书本到排序;一些代码题政治:肖八三、四、五选择... 查看详情

《剑指offer》第三十八题(字符串的排列)(代码片段)

//面试题38:字符串的排列//题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,//则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。#include<iostream>voidPermutation(char*pStr,ch... 查看详情

第三十八期字节跳动后台开发二面凉经

简历上写了C++和golang,所以两个语言都涉及了一面:golang如何设计一个生产者消费者的模型对channel和goroutine的理解字符串实现减法快速排序c++虚函数进程的通信方式死锁二面:Linux的几个操作找出二叉树中的某路径,使其和为定... 查看详情

我的第二十八篇博客---seleinum

fromseleniumimportwebdriver#初始化驱动driver=webdriver.Chrome()#请求页面driver.get(url=‘https://www.baidu.com‘)#找到对应标签,发送文本driver.find_element_by_xpath("//*[@id=‘kw‘]").send_keys(‘2019‘)#找到按钮,点击clickdriver.fin 查看详情

社区问答第三十八期编写高质量c程序代码

NOJ的一道题求助大神Java爬虫,信息抓取的实现C++实现给多个变量传值指针定义成全局和定义在main中为什么不一样?定义在main中执行中止cqj慰膛哦http://p.baidu.com/itopic/main/center?uid=b2fe61626334633530376481af&gb2h咆诱推o8ic7o趾破举http://... 查看详情

第三十八次发博不知道用什么标题好(代码片段)

1#include<stdio.h>2#include<stdlib.h>3typedefstructnode4intdata;5structnode*next;6Slist;7Slist*Creatlist(Slist*L,inta[],intn)89Slist*s;10inti;11L=(Slist*)malloc(sizeof(Slist));12L->n 查看详情

小刘同学的第四十八篇博文

  自己的状态出问题了,而且家里事情也比较多吧。  今天要承认确实有时间本可以拿出来编程的,但是没有编。  立一个flag吧,明天一定要有内容的更新。 查看详情

一起talkandroid吧(第三百三十八回:android中的okhttp一)(代码片段)

各位看官们,大家好,上一回中咱们说的是Android中Volley的例子,这一回中咱们说的例子是Android中的OkHttp。闲话休提,言归正转。让我们一起TalkAndroid吧!看官们,我们在本章回中介绍另外一种HTTP库:OkHttp。... 查看详情

第十八篇js传参数

JS传参数 参数,这是个什么东西呢?简单的说吧,我们去玩别人的网站,一般来个登录,有用户名和密码,当我们输入正确之后,那么这用户名和密码里面的值,就是参数的值,它将这个值传给“参数”,然后提交到后台去... 查看详情

-考研第三十八周总结-

-考研第三十八周总结-【本周完成】✅数学:李林第3、4、5套卷;17、18年数学;英语;17年卷子、2016完型,12年大小作文专业课:17年卷子;书本到排序;一些代码题政治:肖八三、四、五选择... 查看详情