gpt4 book ai didi

ios - 如何像 Facebook 一样向下滚动后从顶部滚动 - Swift 4.2

转载 作者:行者123 更新时间:2023-11-30 11:15:33 24 4
gpt4 key购买 nike

我想实现像 Facebook 应用程序一样的滚动功能,如果向下滚动页面,请点击选项卡栏项目,然后点击相同的选项卡栏项目,它会从顶部开始滚动。

这是我的代码 -

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

let indexOfTab = tabBar.items?.index(of: item)
if indexOfTab == 0{
let feed = HomeFeedViewController()
feed.scrollToTop()
print("pressed tabBar: \(String(describing: indexOfTab))")
}else if indexOfTab == 1{
print("pressed tabBar: \(String(describing: indexOfTab))")

}else if indexOfTab == 2{
print("pressed tabBar: \(String(describing: indexOfTab))")

}else if indexOfTab == 3{
let feed = QueueViewController()
print("pressed tabBar: \(String(describing: indexOfTab))")

}else if indexOfTab == 4{
print("pressed tabBar: \(String(describing: indexOfTab))")

}

}


func scrollToTop(){

feedsTableView.setContentOffset(.zero, animated: true)
}

最佳答案

对于 swift

extension UIViewController {
func scrollToTop() {
func scrollToTop(view: UIView?) {
guard let view = view else { return }

switch view {
case let scrollView as UIScrollView:
if scrollView.scrollsToTop == true {
scrollView.setContentOffset(CGPoint(x: 0.0, y: -scrollView.contentInset.top), animated: true)
return
}
default:
break
}

for subView in view.subviews {
scrollToTop(view: subView)
}
}

scrollToTop(view: self.view)
}
}

使用

var previousController: UIViewController?

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {

//when user is in FeedViewController and scroll at last record and want to
if previousController == viewController {
if let navVC = viewController as? UINavigationController, let vc = navVC.viewControllers.first as? HomeViewController {

if vc.isViewLoaded && (vc.view.window != nil) {
vc.scrollToTop()
}
print("same")
}
}
else{
print("No same")
}

previousController = viewController
return true;
}

关于ios - 如何像 Facebook 一样向下滚动后从顶部滚动 - Swift 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com