5つのアイテムのタブバーがあり、ユーザーがタブバーアイテムを再びタップすると上部にスクロールする機能を追加しようとしています。イベントをトリガーするビューにUITabBarControllerDelegate
を追加し、選択したタブバーインデックスを決定する関数も作成しました。スウィフト - 選択されたタブバーインデックスがトリガーされないトップへスクロール
アプリを開くと、インデックス0が自動的に選択され、完全に機能します。下にスクロールしてタブバーのインデックスをタップすると、ビューは自動的に上にスクロールします。問題は、インデックス1に移動してスクロールをトリガするときに発生します。それはどうにかして、最初のタブバーの項目からオートスクロールを完全に削除します。
自動スクロールせずに他のタブバー項目を選択しても、インデックス0にはまったく影響しません。
ホーム(インデックス0)
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 0 {
self.collectionView?.setContentOffset(CGPoint(x: 0, y: -10), animated: true)
}
}
ユーザー(インデックス1)
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 1 {
self.tableView?.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
}
}
:
はタブコントローラのデリゲートにする必要があり、各ビューコントローラに以下を追加します。最後のものが勝つ。 – rmaddy
本当に!では、どうやって2つの異なるタブバー項目にオートスクロールを追加できますか? –