我的应用程序中有一个UITabBar。其中一个标签栏图标看起来像一个加载符号。当用户按下加载按钮时,我希望图标旋转/旋转直到加载完成。我应该使用UIImageView动画还是其他东西?我该如何实现这一目标?
答案 0 :(得分:1)
Jacos,遗憾的是你不能用UITabBarController
做到这一点并操纵tabBarController的tabBar属性。我最好的选择是你使用UIToolBar
并指定一个黑色并使其显示为tabBar
,并在其中添加按钮subView
,使它们看起来像{{} 1}}。
它更加可定制,您甚至可以提供滚动体验并添加更多按钮。
答案 1 :(得分:1)
我知道这个问题已经有4年了,但我遇到了同样的问题,并通过阅读这里的教程设法解决了这个问题:
重点是获取所需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度,但您可以根据需要进行更改。
答案 2 :(得分:0)
我猜你可以在计时器上更改UITabBarItem的图标,但这看起来非常糟糕。您必须预先渲染“加载”图标的每个帧,而不是旋转ImageView。
另一个hackey解决方案是将您的ImageView添加到UIWindow并将其移动到TabBarController的TabBar之上(将其添加到TabBar本身就会遇到麻烦)。
答案 3 :(得分:0)
您不应该尝试在UITabBarController中为实际的UIImageView设置动画。我会采取这种方法:
UIActivityIndicatorView
并将其添加到标签栏上。将其放在正确的选项卡上。
[self.tabBarController.tabBar addSubview:activityIndicatorView]
;