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

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

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

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iPhone 6

iPhone 6は、2014年に発売されたアップル社のスマートフォンです。画面サイズは4.7インチあり、A8コアチップとM8モーションコプロセッサを搭載しています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

3297閲覧

SplitView内のIndicatorの中央配置について

koike

総合スコア24

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iPhone 6

iPhone 6は、2014年に発売されたアップル社のスマートフォンです。画面サイズは4.7インチあり、A8コアチップとM8モーションコプロセッサを搭載しています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/02/09 02:39

UIActivityIndicatorViewを画面中央に配置する方法を教えて下さい。

通常の画面では
let indicator = UIActivityIndicatorView()
indicator.center = self.view.center
でちゃんと画面中央に表示できています。

ですが、
splitViewの中のdetailの画面で同様の記述をしても、
画面中央より右側にずれてしまいます。

ちなみに、この画面をiPhone6Plusの縦で実行したら、
ちゃんと画面中央に表示されます。
が、横で実行したら、ずれます。

つまり、splitViewが絡むと、うまくいきません。

どなたか教えて頂けませんでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

#画面の中央に表示する場合

親であるSplitViewControllerにaddしてはどうでしょうか?
detail画面で制御するなら、

swift

1class DetailViewController: UIViewController { 2 3 let indicator = UIActivityIndicatorView() 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 : 8 //add 9 self.splitViewController!.view.addSubview(indicator) 10 } 11 12 override func viewWillLayoutSubviews() { 13 super.viewWillLayoutSubviews() 14 : 15 //set center 16 if let splitViewController = self.splitViewController { 17 indicator.center = splitViewController.view.center 18 } 19 } 20 : 21}

startAnimating,stopAnimatingや、その他細かいところはおまかせ。

#detail画面の中央に表示する場合

swift

1class DetailViewController: UIViewController { 2 3 let indicator = UIActivityIndicatorView() 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 : 8 //add 9 self.view.addSubview(indicator) 10 } 11 12 override func viewWillLayoutSubviews() { 13 super.viewWillLayoutSubviews() 14 : 15 //set center 16 indicator.center = CGPointMake( 17 self.view.center.x - CGRectGetMinX(self.view.frame), 18 self.view.center.y - CGRectGetMinY(self.view.frame)); 19 } 20 :

投稿2016/02/09 05:54

編集2016/02/09 08:08
fuzzball

総合スコア16731

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

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

koike

2016/02/09 07:31

すみません、質問がおかしかったです。 splitViewのdetail側の中央に表示したいのが、今回の質問です。 ちなみに、ご教授頂いた方法で、画面の中央には表示することができました。
fuzzball

2016/02/09 08:09 編集

(deleted)
fuzzball

2016/02/09 08:09

回答に追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問