0

答えはかなり明白になると思いますが、私の質問に対する答えが見つかりません。以前に質問されたことがあることを質問している場合は、申し訳ありません。

initでuiviewのフレームの高さをトレースすると、高さが480pxであることが示されます。ジェスチャを実行した後(または外に出た後)に同じ高さをトレースすると、高さが460pxであると表示されるため、フレームからステータス バーが「削除」されます。なぜこれが起こるのかよくわかりません。動的な垂直センタリングがお尻の痛みになります。フレームをinitで460pxにしたいので、ビュー/画像を中央に配置するために10pxを引く必要はありません。if (self)

何も入っていない単純なプロジェクトを作成しました。次のように設定しました。

コントローラ

- (void)loadView
{
    CGRect frame = [[UIScreen mainScreen] bounds];
    self.centerview = [[CenterView alloc] initWithFrame:frame];
    [self setView:self.centerview];
}

あなたの助けを前もってありがとう:)

4

2 に答える 2

0

UIScreen のサイズには、ステータス バーと、ナビゲーション バーやタブ バーなどのその他の要素が含まれるため、iPhone 4S 以下では 480 になります。 UIView のサイズは、使用可能なスペースのみになります。

ステータス バーが必要ない場合は非表示にすると、フル サイズの画面で遊ぶことができます。

読み込んでいるビューのサイズを取得することをお勧めします。

CGRect frame = self.view.superview.bounds;

UIScreen を使用する代わりに

于 2013-06-07T15:37:14.790 に答える
0

applicationFrameの代わりに使用boundsmainScreenます。ドキュメントから:

このプロパティには、画面の境界からステータス バーが占める領域を差し引いたものが含まれます (表示されている場合)。アプリケーションの初期ウィンドウ サイズを取得するには、このプロパティを使用することをお勧めします。四角形はポイント単位で指定します。

centerview に新しいビューを追加することに関する 2 番目の問題は、おそらく境界とフレームが混在しているためです。新しいビューを centerview と同じサイズで同じ位置に追加する場合は、次のようにします。

UIView *newView = [[UIView alloc] initWithFrame:self.centerView.bounds];
[self.centerView addSubview:newView];
于 2013-06-07T15:52:17.283 に答える