0

iOSアプリで半透明のナビゲーションコントローラーを使用しています。

問題は、CollectionViewcontrollerが半透明のNavigationControllerの下に移動することです。しかし、それをblacknavigationControllerに変更すると、修正されます。

translucentNavigationControllerをblackNavigationControllerのように動作させたいですか?私はこれを達成する方法がわかりませんか?

ありがとうございました。 ここに画像の説明を入力してください

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

コレクションビューにセクションヘッダーを追加しようとしましたが、デバイスの回転時にヘッダーのサイズが同じままであるという問題があります。

MY回転処理コード@j_mcnally

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{

    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication]  statusBarOrientation];
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation))
    {
        NSLog(@"Is in portrait Mode");
        self.collectionView.contentInset=UIEdgeInsetsMake(44.0f, 0.0f, 0.0f, 0.0f);
        self.collectionView.scrollIndicatorInsets=UIEdgeInsetsMake(45.0f, 0.0f, 0.0f,  0.0f);
    }
    else{
        NSLog(@"Is in landscape Mode");

        self.collectionView.contentInset=UIEdgeInsetsMake(32.0f, 0.0f, 0.0f, 0.0f);
        self.collectionView.scrollIndicatorInsets=UIEdgeInsetsMake(33.0f, 0.0f, 0.0f,  0.0f);
}

}

回転処理では、左回転してから右回転しない限り、問題は修正されたようです。そして結果はこれです ここに画像の説明を入力してください

4

4 に答える 4

1

ここでの問題は、scrollviewのフレームです。UINavigationBarが半透明の場合、レイアウトはナビゲーションバーの高さを計算しないため、スクロールビューのフレームは0.44ではなく0,0から始まります。解決策は、すでに行ったことを実行することですが、グリッドをオフセットするようにコンテンツインセットを変更します。

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

ナビゲーションバーのサイズを反映するように、上部のコンテンツインセットを変更します。これにより、コンテンツがナビゲーションバーの下で開始しなくても、ナビゲーションバーの下でスクロールできるようになります。このメニューオプションを取得するには、ビューの自動レイアウトをオフにする必要がある場合があります。5.xの互換性が損なわれるため、私は個人的に自動レイアウトを使用しません。

これにより回転に余計なスペースが残る場合は、shouldAutorotate関数のインセットを調整するか、NSNotificationCenterで回転イベントをサブスクライブできます。

新しい問題によると、オフセットを増やしていても、回転して挿入図を44.0fに変更すると、ビューは上から32.0fに移動し、scrollviewsコンテンツのオフセットはリセットされないように見えます。したがって、12.0fで下にスクロールすると、適切な位置0.0fに移動します。

したがって、回転するたびに、または例のようにビューがビューの下で部分的にスクロールされた場合にのみ、contentoffsetを0.0にリセットすることができます。したがって、contentOffsetが44.0f未満の場合は、0.0に設定します。それよりも大きい場合は、そのままにしておきます。または、ビューを縦向きに戻すたびに新しいオフセット+ 12.0fを再計算したり、その逆を行って挿入図の違いを補正したりすることもできます。

于 2013-03-25T20:04:34.913 に答える
0

コレクションビューにセクションヘッダーを追加しようとしましたが、デバイスの回転時にヘッダーのサイズが同じままであるという問題があります。

現在のデバイスの向きを確認し、現在の向きtableView:heightForHeaderInSection:に基づいて異なる高さを返すことができます。

于 2013-03-25T20:01:10.107 に答える
0

黒を取り、アルファプロパティを調整できる場合があります。

self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.navigationController.navigationBar.alpha = 0.2f;
于 2013-03-25T20:03:26.130 に答える
-1

ビューコントローラを実行して、コレクションテーブルを追加します。次に、必要に応じてサイズを変更できます。おそらくcollectionViewControllerテンプレートを使用したので、制御が少なくなります。

これを行ったら、コレクションテーブルをナビゲーションバーの下に配置します。

于 2013-03-25T20:01:31.383 に答える