2

アプリケーションにUITabBarがあります。タブバーアイコンの1つは、読み込み中の記号のように見えます。ユーザーが読み込みボタンを押したときに、読み込みが完了するまでアイコンを回転/回転させたいと思います。UIImageViewを使用してアニメーション化する必要がありますか?どうすればこれを実現できますか?

4

4 に答える 4

1

UITabBarControllerJacos さん、残念ながら、tabBarController の tabBar プロパティを使用して操作することはできません。私の最善の策は、 a を使用しUIToolBarて黒色を割り当て、それを a のように表示し、tabBarボタンを として追加して、 のsubViewようにすることです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 を回転させるのではなく、「読み込み中」アイコンの各フレームを事前にレンダリングする必要があります。

別のハッキーな解決策は、ImageView を UIWindow に追加し、TabBarController の TabBar の上に移動することです (TabBar 自体に追加すると問題が発生します)。

于 2012-06-13T21:25:55.513 に答える
0

UITabBarController 内で実際の UIImageView をアニメーション化しようとしないでください。私はこのアプローチを取ります:

  1. 関連するタブの画像を nil または空白の画像に設定します。
  2. を作成UIActivityIndicatorViewし、タブ バーに追加します。正しいタブの上に配置します。 [self.tabBarController.tabBar addSubview:activityIndicatorView];
  3. 読み込みタスクが完了したら、タブに通常の画像を復元し、タブ バーから activityIndi​​cator を削除します。
于 2012-06-13T21:57:43.503 に答える