ios - 像 Facebook 一样向下滚动后如何从顶部滚动 - Swift 4.2
问题描述
我想实现像 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)
}
解决方案
请尝试我的代码
var canScrollToTop:Bool = true
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
// Allows scrolling to top on second tab bar click
if (viewController.isKindOfClass(CustomNavigationBarClass) && tabBarController.selectedIndex == 0) {
if (viewControllerRef!.canScrollToTop) {
viewControllerRef!.scrollToTop()
}
}
}
// Scrolls to top
func scrollToTop() {
self.View.setContentOffset(CGPoint.zero, animated: true)
self.tblView.setContentOffset(CGPoint.zero, animated: true)
self.collView.setContentOffset(CGPoint.zero, animated: true)
}
// Called when the view becomes available
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
canScrollToTop = true
}
// Called when the view becomes unavailable
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
canScrollToTop = false
}
推荐阅读
- spring-boot - Wildfly Spring 启动应用程序日志到 DEBUG 级别
- node.js - 使用适当的错误处理进行连续的 axios post API 调用
- azure - ServiceBusTrigger 延迟执行
- php - 表 1 记录不应出现在表 2 中
- html - 如何将excel文件读入R并将其作为html运行(我收到错误)
- python - 文件无法解码为 utf-8
- twitter - 带有 Next.js 的 Twitter API
- reactjs - 将数据从子功能组件传递到父组件 - React/Typescript
- javascript - 使用 selenium python 更改 html 元素
- regex - 在相似变体中查找部分字符串匹配