質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

解決済

1回答

1296閲覧

UIActivityIndicatorの管理について

siroop

総合スコア15

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2016/03/18 14:11

1つのプロジェクト内の様々な箇所でインジケーターの表示・非表示を処理する場合について。
実行する際に毎回定義するのはスマートではないので、専用のクラスを作って管理するのがよいかなと思いましたが、経験が少ないのでいまいちどうやればよいのかわかりません。
みなさんはどのように管理しますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2016/03/18 14:34

管理とは、一つのインスタンスを使いまわしたいという意味ですか?
RyogaK

2016/03/18 14:49

要件が曖昧です。 設計思想や、それぞれのメリットデメリットは多岐にわたります。 一度自分でコードを書いてみて、自分の書いたコードでは要件を満たせないと感じた時、それを具体的に質問してみてはどうでしょうか。
siroop

2016/03/21 14:48

> Stripeさん 具体的にそこまで考えていたわけではないですが、クラス間をまたいで表示・非表示を制御する場合も考慮して、利用するときにインスタンスを生成するのではなく専用クラスを作ってそこで表示・非表示の制御をするのがよいと思いました。いざ作ってみようと思ったのですが、具体的にどう作ればよいか浮かばなかったため質問した次第です。 RyogaKさん 確かにおっしゃるとおりですね。私の中でも曖昧なまま質問してしまったので的を得ない質問となってしまいました。
guest

回答1

0

ベストアンサー

最近はライブラリを使用する事が多いですが、以前は簡単なクラスを定義して利用していました。
見た目にこだわらないのあれば用途的には十分だと思います。

※コメント頂いた通りSingletonにする必要がなかったのでコードを修正しました。

swift

1// インジケータークラス 2 3import UIKit 4 5class IndicatorView: UIView { 6 7 static var Indicator = UIActivityIndicatorView(activityIndicatorStyle: .WhiteLarge) 8 static let baseView = UIView() 9 10 static func generateBaseView(parentView: UIView) { 11 12 baseView.frame = parentView.bounds 13 baseView.backgroundColor = UIColor.blackColor() 14 baseView.alpha = 0.7 15 16 Indicator.center = baseView.center 17 Indicator.startAnimating() 18 baseView.addSubview(Indicator) 19 } 20 21 static func showIndicator(parentView: UIView?) { 22 23 if let parentView = parentView { 24 generateBaseView(parentView) 25 parentView.addSubview(baseView) 26 } 27 } 28 29 static func hideIndicator() { 30 baseView.removeFromSuperview() 31 } 32}

swift

1// 呼び出すところ(NavigationControllerの場合) 2IndicatorView.showIndicator(navigationController?.view) 3 4// 呼び出すところ(ViewControllerの場合) 5IndicatorView.showIndicator(view) 6 7// 消す時 8IndicatorView.hideIndicator()

image

投稿2016/03/19 16:59

編集2016/03/19 21:49
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2016/03/19 19:02

IndicatorViewのsharedInstanceを作っている理由はなんですか? baseViewのstatic変数とstaticなshowIndicator()関数を作れば済むのでは?
_Kentarou

2016/03/19 21:53

気にした事がなかったです、、、ご指摘ありがとう御座います! わざわざSingletonにするまでもなかったのでコードを修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問