2

我的应用程序中有一个 UITabBar。其中一个标签栏图标看起来像一个加载符号。当用户按下加载按钮时,我希望图标旋转/旋转直到加载完成。我应该使用 UIImageView 来制作动画还是其他什么?我应该如何做到这一点?

4

4 回答 4

1

Jacos,不幸的是,您无法使用UITabBarController和操作 tabBarController 的 tabBar 属性来做到这一点。我最好的选择是您使用 aUIToolBar并指定黑色并使其看起来像 atabBar并在其中添加按钮作为 asubView使它们看起来像tabBarItems

它的可定制性更高,您甚至可以提供滚动体验并为其添加更多按钮。

于 2012-06-13T21:13:33.877 回答
1

我知道这个问题已有 4 年历史,但我遇到了同样的问题,并通过阅读此处的教程设法解决了这个问题:

https://medium.com/@werry_paxman/bring-your-uitabbar-to-life-animating-uitabbaritem-images-with-swift-and-coregraphics-d3be75eb8d4d#.bjfpbdnut

要点是获取所需 UITabBarItem 的视图并在 viewDidLoad 中从中获取 UIImageView:

UIView *plusView = self.tabBar.subviews[1];
self.plusImageView = plusView.subviews.firstObject;
self.plusImageView.contentMode = UIViewContentModeCenter;

然后在 didSelectItem 方法中你可以这样做:

[UIView animateWithDuration:0.4 animations:^{
      [self.plusImageView setTransform:CGAffineTransformMakeRotation(M_PI/4)];
}];

我的代码仅将图像视图旋转 45 度,但您可以根据需要进行更改。

于 2016-08-20T15:04:07.880 回答
0

我想你可以在计时器上更改 UITabBarItem 的图标,但这看起来很笨拙。您必须预先渲染“加载”图标的每一帧,而不是旋转 ImageView。

另一个 hackey 解决方案是将您的 ImageView 添加到 UIWindow 并将其移动到 TabBarController 的 TabBar 的顶部(将其添加到 TabBar 本身就是自找麻烦)。

于 2012-06-13T21:25:55.513 回答
0

您不应该尝试在 UITabBarController 中为实际的 UIImageView 设置动画。我会采取这种方法:

  1. 将相关选项卡的图像设置为 nil 或空白图像。
  2. 创建一个UIActivityIndicatorView并将其添加到选项卡栏上。将其放置在正确的选项卡上。 [self.tabBarController.tabBar addSubview:activityIndicatorView];
  3. 加载任务完成后,将正常图像恢复到选项卡并从选项卡栏中删除活动指示器。
于 2012-06-13T21:57:43.503 回答