0

メイン ビューの右下に正方形 (50 x 50) の UIView を作成しようとしていますが、完全に表示されない理由がわかりません。この例では、その先端だけが下から見えます。私はいくつかの概念を混乱させていますか?

    CGFloat width = CGRectGetWidth(self.view.bounds);
    CGFloat height = CGRectGetHeight(self.view.bounds);
    UIView *transparentFloater = [[UIView alloc] initWithFrame:CGRectMake(width - 50.f, height - 50.0f, 50.0f, 50.0f)];

    [self.view addSubview:transparentFloater];
4

3 に答える 3

2

自動サイズ変更マスクを追加してみてください。

transparentFloater.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
于 2013-09-16T05:47:26.077 に答える
1

私が間違っていなければ、xib を使用して ViewController を作成し、ビューの属性で、「ナビゲーション バー」を「トップ バー」として使用していることを忘れていました。

理由

したがって、ViewDidLoad では、高さXの .xib のビューが返されます。しかし、 UINavigationController を使用して viewController を読み込んだ可能性があるため、読み込ん後、ビューの高さは44pixels減少します。

提案:

1)上部にナビゲーション バーを配置することがわかっている場合は、 .xibファイルにも記載してください。

これを行うには、xib のビューをクリックし、ユーティリティ領域属性インスペクターtopbarというオプションを選択します。

2) 次の API を呼び出します

    NSLog(@"In ViewDidAppear %@",NSStringFromCGRect(self.view.bounds));

  • viewDidLoad
  • viewDidAppear

    ビューの境界で何が起こっているかを追跡する

于 2013-09-16T07:06:47.780 に答える
0

置くだけで何もする必要はありません

transparentFloater.backgroundColor = [UIColor redColor];

ビュー(カスタム)が見えないため(メインビューの色とカスタムビューの色が同じ(白)であるため)である可能性があります。私のデモプロジェクトであなたのコードを試しました。それは私にとって完璧に機能しました。

于 2013-09-16T05:49:03.823 に答える