2017-09-23 10 views
0

iOS11にいくつかのセルを含むUISearchController検索結果tableViewで問題があります。私はtableViewをスクロールしてから、スクロールして画面から指を離します。その後、使用可能なすべてのセルを表示するには、tableViewを枠線までスクロールダウンする必要があります。しかし、スクロールは0.5秒間凍結され、tableViewは非常に強く素早く戻ってきます。それは悪く見えます。iOS11のバグ - スクロールした後にsearchBarが戻ってジャンプする

検索バーはナビゲーションバーにあります。 スクロール中は、すべてのセルが画面のスコープ内に残っているため、コードは実行されません。私は各コントローラ機能にブレークポイントを設定しますが、機能しません。

このエラーに関するビデオを記録しました。ビデオは以下から入手できます:https://youtu.be/g3LqdpI4FeA

どうすれば修正できますか?

+0

ビデオごとに、テーブルビューをスクロールするセルが多数ありません。 30セルを追加して試すことができます – user1046037

+0

はいできます。その後は動作しますが、検索結果には少数のセル、さらには1つしか含まれないため、いくつかのセルで動作する必要があります。 – aktubuct

+0

@aktubuctシミュレータではなく、実際のデバイスで試すことができますか? – Martin

答えて

0

私はこの問題を解決します。バグは、searchBarがアクティブで、画面の上部に単独で保持されている間に、tableViewがsearchBarを含むセルをスクロールしようとするために発生します。

解決策は、searchBarがアクティブな間に値navigationItem.hidesSearchBarWhenScrollingを強制的にfalseに変更し、searchBarが終了するとそれを戻すことです。

func willPresentSearchController(_: UISearchController) { 
    if #available(iOS 11.0, *) { 
     navigationItem.hidesSearchBarWhenScrolling = false 
    } 
} 

func willDismissSearchController(_ searchController: UISearchController) { 
    if #available(iOS 11.0, *) { 
     navigationItem.hidesSearchBarWhenScrolling = true 
    } 
} 
関連する問題