【问题标题】:How to navigate to Custom Page from UIScrollView如何从 UIScrollView 导航到自定义页面
【发布时间】:2021-09-24 11:37:31
【问题描述】:

Github 链接 - https://github.com/dnlatt/iOS/tree/master/MobileDataUsage2

  1. 我从 Core Data 获取数据并传递给 MobileDataUsageViewController.swift。

let detailVC = segue.destination as! MobileDataDetailsViewController
        detailVC.selectedYear = year
        detailVC.years = years
        detailVC.coreDataYears = coreDataYears

  1. 在该页面中,我想以滑块格式显示所有数据。

 override func viewDidLoad() {
        super.viewDidLoad()
        pageControl.numberOfPages = coreDataYears.count
        pageControl.backgroundColor = .systemBlue
        pageControl.currentPage = 1
        scrollView.delegate = self
        
        pageControl.addTarget(self, action: #selector(pageControlDidChange(_:)) , for: .valueChanged)
        view.addSubview(scrollView)
        view.addSubview(pageControl)
        
    }

  1. 如何访问Core Data Array的索引?例如,从表格中,如果用户选择“2018”,我需要导航到第 2 页并显示第 2 页的结果。我可以在 Page View Control Event 中设置页码。

如果我从第一个屏幕点击 2018,它总是导航到 2019 年数据结果。我想设置正确的页面并导航到 正确的页面。如何从coreDataYears: [Year] = [] 获取selectedYear: Year! 的索引并导航到正确的页面。我可以在下面的参数中设置变量

pageControl.currentPage = 1

现在只显示 2019 年的结果,这是第一个。

  1. 如果我在页面上滑动,它总是卡在底部。如何修复 UI 布局? UI 上还有额外的滚动条。

【问题讨论】:

  • 您的问题中有很多代码。请您尝试找到一种方法来为您的问题提供相关代码。比如...您的选择/导航代码在哪里?
  • Erm...您在标题中说您使用的是UITableView,但您的代码只是您手动布局的UIScrollView?使用实际的UITableView 会更有意义。一旦完成,您的整个问题就会消失。
  • 你让整个事情变得比它需要的更难。
  • 嗯...我认为您最好使用UIPageViewController 来实现您正在做的事情。有一个显示年份的 UITableView。然后点击你可以导航到一个UIPageViewController,它将只有一年的当前视图控制器。但是让页面视图控制器能够横向滑动到上一年/下一年。你甚至可以拥有一个 PageControl。这样,您可以使每个单独的控制器保持较小。即只有一年的数据。但是使用多个控制器构建完整的功能。
  • @Fogmeister,非常感谢。那是救我的命。设法完成您的建议。

标签: ios swift uipagecontrol


【解决方案1】:

Githublink - https://github.com/dnlatt/iOS/tree/master/MobileDataUsage3

通过使用 UIPageViewController 重构代码解决了这个问题。以上 Github 链接中的详细信息。

【讨论】:

  • 太棒了!很高兴你成功了??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多