テーブルに常に少なくとも 1 つの行がある場合は、テーブルの最初の行までスクロールすると、検索バーが自動的に非表示になります。
let firstIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(firstIndexPath、アニメーション: false、scrollPosition: .Top)
上記のコードをviewDidLoadに配置すると、 tableViewがまだロードされていないためエラーがスローされます。
viewDidAppearに配置すると、tableView を開くたびに上部にスクロールします。
UITabBar ビュー コントローラーの場合や、セグエを実行してから戻ってきた場合など、tableView が開いたままの場合は、この動作が望ましくない場合があります。初期ロード時に一番上までスクロールしたい場合は、最初のロードかどうかを確認する変数を作成して、一度だけ一番上までスクロールするようにします。
まず、View Controller クラスで isInitialLoad という変数を定義し、「true」に設定します。
var isInitialLoad = true
次に、 viewDidAppearでisInitialLoad が true かどうかを確認し、true の場合は、一番上までスクロールして isInitialLoad 変数を false に設定します。
if isInitialLoad {
let firstIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(firstIndexPath, animated: false, scrollPosition: .Top)
isInitialLoad = false
}