标签栏项目过渡

Posted

技术标签:

【中文标题】标签栏项目过渡【英文标题】:Tab bar item transition 【发布时间】:2017-08-28 22:07:59 【问题描述】:

我的代码中有一个标签栏控制器,我想在标签栏项目之间进行动画转换。我找到了一种用控制器来做到这一点的方法,但不是用这些项目。我知道我必须使用 UIView.animate,但我不知道如何。有什么想法吗?

【问题讨论】:

你想看什么动画?所有标签栏项目都是可见的,因此项目之间不需要任何淡入淡出。 Tab 项之间的动画过渡。我能做到吗? 你的问题不清楚。当您单击不同的选项卡时,您希望与标准 UITabBar 有什么不同? 我在标签栏项目的顶部有一个图像指示器,当更改项目时,想要在此图像中显示动画。 对不起我的英语。我来自巴西 【参考方案1】:

我有一个带有一些tabBar项目的tabBarController,当我点击这些项目时,它的比例会变大然后回到默认大小,它看起来就像一个动画。 使用Objective-C,您可以按如下方式使用:

//didSelectItem

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

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



//animation 

- (void)animationWithIndex:(NSInteger) index 
    NSMutableArray *tabBarBtnArr = [NSMutableArray array];
    for (UIView *tabBarBtn in self.tabBar.subviews) 
        if ([tabBarBtn isKindOfClass:NSClassFromString(@"UITabBarButton")]) 
            [tabBarBtnArr addObject:tabBarBtn];
        

    
    UIButton *btn=tabBarBtnArr[index];
    [UIView animateWithDuration:0.2 animations:^
        btn.transform=CGAffineTransformMakeScale(1.2, 1.2);

     completion:^(BOOL finished) 
        [UIView animateWithDuration:0.2 animations:^
            btn.transform=CGAffineTransformIdentity;

        ];
    ];


【讨论】:

我想我只会为控制器制作动画,但谢谢! 你只是想在tabBarController的不同viewController之间做一个动画? 不,我想在标签栏索引中

以上是关于标签栏项目过渡的主要内容,如果未能解决你的问题,请参考以下文章

如何从标签栏打开侧边菜单

没有标签栏项目的视图的标签栏 iPhone 应用程序

隐藏标签栏项目并对齐其他标签项目

自定义标签栏和标签栏项目

如何在标签栏中均匀地间隔标签栏项目

如何从“更多”标签栏项目中的编辑检测标签栏项目更改?