2017-07-17 12 views
11

ナビゲーションコントローラに組み込まれている通常のビューコントローラがあります。このビューコントローラでは、セーフエリアの制約を使用しているテーブルビューがあります。 (私はテーブルビューコントローラを使用しません)スクロールアップ時に大きなタイトルを表示しない

ナビゲーションコントローラは大きなタイトルを優先して設定されており、モードは常に[常に]に設定されています。ベータ2ではこれが完全に機能していたので、タイトルが入ったときにタイトルが大きくなり、スクロールすると小さくなりました(通常のものと同じように)。しかし、ベータ3以降、これはもう動作しません。

これを元に戻す方法を知っている人、またはテーブルビューをスクロールすると誰かがそれを小さくする方法を知っています。新しいiOS 11アプリのすべての動作と同じですか?

これは現在のバージョンのswift 4/iOS 11のバグですが、メッセンジャーや設定などのアプリはこのように動作します。

ありがとうございます。

答えて

20

を、それはあなたがブール値を設定している場合はtrueにストーリーボードに「大タイトルを好む」ということでしたそれは期待どおりに動作するコードでこれをオンにすると、大きなままになります!

+4

これは間違いなくiOS 11のバグですが、あなたのヒントは回避策として私のために働いた!ありがとうございました! – funkenstrahlen

+3

まだGMビルドのケース! – Ely

+2

私はバグレポートを埋めました。そして、そのバグレポートは重複して設定されているので、知っておくべきです。 –

0

チェックあなたのナビゲーションIBにあるバー、または使用のために「大型タイトルを好む」:私にとって

navigationController?.navigationBar.prefersLargeTitles = true 
+2

はい私はこれと大型タイトルのショーを行いますが、私はスクロールダウンしたときに小さくなることはありません。それは常に大きいままですが、スクロールして上にいくとタイトルがさらに大きくなります。したがって、制約も適切に機能します。ベータ3以降では、スクロールしても小さくなることはありません。 –

1
(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y > 0) { //20 
     [self.navigationController.navigationBar setPrefersLargeTitles:NO]; 
    } else { 
     [self.navigationController.navigationBar setPrefersLargeTitles:YES]; 
    }  
} 
5

私は(スクロールを持っているかの要素)のtableViewは、あなたのビュー階層の最初のビューでない場合、このサイト 上の問題を回避するには、基本的には、大きなタイトルが自動的に非表示に失敗しました。

Example that will NOT work Example that will work

https://markusbodner.com/2017/10/08/fix-large-navigation-bar-title-not-hiding-on-scroll-in-ios-11/

私は、ビューwillAppearに追加:

 if #available(iOS 11.0, *) { 
     navigationController?.navigationBar.prefersLargeTitles = true 
    } else { 
     // Fallback on earlier versions 
    } 
+0

ここに回避コードを投稿してください。 –

+0

私はストーリーボードでこれを行いました。階層をどのように編集、編集するかを示す2つのイメージを添付します...私は大きなタイトルを設定するために使用したコードを追加しました - –

関連する問題