2

重複の可能性:
iOS SDK:コード
UIImageViewによってボタンを画面の中央に移動します。任意の長方形にズームして中央に配置します。画面上の正しい中心を特定できません

UIActivityIndi​​catorをUIWebViewに集中させようとしています(これはUIScrollViewのサブビューであり、左側にUIToolbar要素もあります-左側のツールバーは常に表示されているわけではありません)

同様の質問が以前に行われていますが、重要なのは、中心を「動的に」見つけることです。つまり、方向の変更と、左側のツールバーの有無です。

最善のアプローチは何ですか?メソッドをオーバーライドするよりも、これを行うためのより良い方法はありますshouldAutorotateToInterfaceOrientationか?

4

2 に答える 2

11

ところで何の中心?

UIViewControllerのセンターには次のようにアクセスできますself.view.center

またはあなたの場合、UIWebViewのセンターはyourwebView.center

そして、左上のサイズ変更要素を与えることにより、activityindicatorは常にそれ自体を中央に配置します。

編集 :

次のようなフレームによって得られる画面の中央が必要な場合

幅と高さのアクティビティインジケーター30、30を検討してください。

(([UIScreen mainScreen].bounds.size.width)/2 - 15, ([UIScreen mainScreen].bounds.size.height)/2 - 15, 30, 30);

次に、自動サイズ変更要素をnoneに設定します。

サイズインスペクターに移動し、自動サイズ設定機能からすべての矢印を削除します。

ここに画像の説明を入力してください

于 2012-10-26T14:52:03.567 に答える
1

あなたの質問に対する一般的な解決策はありません。これは、ビュー内のどの要素を無視するかどうかを知っているのはあなただけだからです。どの要素を追加しても、ビューは常に同じままです。したがって、クリア/空/利用可能と見なすビューの部分の長方形を取得し、その中にロードインジケーターを設定することをお勧めします。ビューのフレーム全体 (self.view.frame.size.height) を取得し、そこから要素を差し引くだけです。例えば

MyIndicator *indicator = [[MyIndicator alloc] initWithFrame:CGRectMake(self.toolbar.frame.size.width + self.toolbar.frame.origin.x, self.topBar.frame.size.height + self.topBar.frame.origin.y, self.view.frame.size.width - self.toolbar.frame.size.width - self.toolbar.frame.origin.x, self.view.frame.size.height - self.topBar.frame.size.height - self.topBar.frame.origin.y)];
于 2012-10-26T15:08:13.857 に答える