アプリケーションにUITabBarがあります。タブバーアイコンの1つは、読み込み中の記号のように見えます。ユーザーが読み込みボタンを押したときに、読み込みが完了するまでアイコンを回転/回転させたいと思います。UIImageViewを使用してアニメーション化する必要がありますか?どうすればこれを実現できますか?
4 に答える
UITabBarController
Jacos さん、残念ながら、tabBarController の tabBar プロパティを使用して操作することはできません。私の最善の策は、 a を使用しUIToolBar
て黒色を割り当て、それを a のように表示し、tabBar
ボタンを として追加して、 のsubView
ようにすることですtabBarItems
。
はるかにカスタマイズ可能で、スクロール エクスペリエンスを提供してボタンを追加することもできます。
私はこの質問が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 度回転させるだけですが、必要に応じて変更できます。
タイマーで UITabBarItem のアイコンを変更できると思いますが、それはかなり面倒です。ImageView を回転させるのではなく、「読み込み中」アイコンの各フレームを事前にレンダリングする必要があります。
別のハッキーな解決策は、ImageView を UIWindow に追加し、TabBarController の TabBar の上に移動することです (TabBar 自体に追加すると問題が発生します)。
UITabBarController 内で実際の UIImageView をアニメーション化しようとしないでください。私はこのアプローチを取ります:
- 関連するタブの画像を nil または空白の画像に設定します。
- を作成
UIActivityIndicatorView
し、タブ バーに追加します。正しいタブの上に配置します。[self.tabBarController.tabBar addSubview:activityIndicatorView]
; - 読み込みタスクが完了したら、タブに通常の画像を復元し、タブ バーから activityIndicator を削除します。