tab点击,图片放大缩小动画
来源:互联网 发布:填表软件 编辑:程序博客网 时间:2024/05/19 19:59
项目中这次改版应产品要求加入tabbar点击做放大缩小动画,只改变图片,标题不做动画。先看效果图
Demo地址
图片做放大缩小动画,很好做。用CoreAnimation的帧动画就可以实现。不过貌似系统并没有开出开关于tabbar上的imageView这个属性。其实我们找到在tab上的imageView,这一切问题就好解决了。
直接上代码
声明一个tab继承系统tabbar#import <UIKit/UIKit.h>@interface FFTabBar : UITabBar@end
.m文件里可以通过layoutSubviews找到需要做动画的tabItem- (void)layoutSubviews{ [super layoutSubviews]; for (UIControl *tabBarButton in self.subviews) { if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) { [tabBarButton addTarget:self action:@selector(tabBarButtonClick:) forControlEvents:UIControlEventTouchUpInside]; } }}
实现点击方法,找系统的私有属性UITabBarSwappableImageView 。这个就是我们今天要找的tab上的imageView
- (void)tabBarButtonClick:(UIControl *)tabBarButton{ NSInteger index = [self.items indexOfObject:self.selectedItem]; if (index != self.selectTabBarTag) { for (UIView *imageView in tabBarButton.subviews) { if ([imageView isKindOfClass:NSClassFromString(@"UITabBarSwappableImageView")]) { [FFTabModel selectTabBarDoScaleAnimationWithView:imageView]; } } } self.selectTabBarTag = index;}#pragma mark - Associated Object- (void)setSelectTabBarTag:(NSInteger)object{ objc_setAssociatedObject(self, @selector(selectTabBarTag), @(object), OBJC_ASSOCIATION_RETAIN_NONATOMIC);}- (NSInteger)selectTabBarTag{ return [objc_getAssociatedObject(self, @selector(selectTabBarTag)) integerValue];}
上边通过私有属性UITabBarSwappableImageView 找到我们想要的imageView然后做相应的动画效果,这里通过runtime运行时,添加属性为NSInteger的selectTabBarTag。目的就是防止重复点击动画,
但是有时候我们项目中往往第一次进入App选择的并不是第0个item,有存在其他情况。这时候我们就要考虑动画保障点击item无论是任何一个的时候都要肯定出现动画,这里我做了一个判断
- (instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { //为保证动画不会重复以及点击动画的正确性,特增加selectTabBarTag, 保证selectTabBarTag和当前tabBarController.selectedIndex一致。 self.selectTabBarTag = 1; } return self;}
到这里就写完了,Demo为项目源码。可放心直接拿去使用
Demo地址
阅读全文
0 0
- tab点击,图片放大缩小动画
- 图片点击放大缩小
- iOS 图片放大缩小动画
- 支持点击放大缩小图片,拖动放大缩小图片功能
- iOS点击图片放大 再点击缩小
- iOS 图片捏合放大缩小 点击放大缩小
- Android 图片放大,缩小,点击还原,double点击放大
- android点击实现图片放大缩小
- jquery点击图片进行放大缩小
- 实现点击图片的放大缩小
- 点击图片实现放大或缩小
- 前端jquery实现图片点击放大缩小
- jquery点击图片放大与缩小
- js 图片放大缩小(动画效果)
- ios 图片放大缩小动画效果
- swift3.0 图片放大缩小动画效果
- 点击图片放大大图动画
- 实现图片的点击放大,再点击缩小
- 谨以此纪念进入程序猿的世界
- straight_insertion_sort
- python学习——通过virtualenv中安装不同版本的Python
- 巴什博奕,威佐夫博奕,尼姆博奕,斐波那契博弈模板
- 排序算法
- tab点击,图片放大缩小动画
- Git_解决库早已经存在问题
- pygame库写游戏——入门<6>——存储图像
- leetCode-Spiral Matrix II
- 关于IP协议首部长度的计算
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数
- 【耀阳的读书笔记】算法导论(2)_Θ、O、Ω傻傻分不清楚
- 云南之旅:随想+攻略
- 快速搭建搜索引擎。haystack + whoosh(Django)