gpt4 book ai didi

ios - Storyboard中带有 PageControl 的 ScrollView

转载 作者:行者123 更新时间:2023-11-30 11:56:13 25 4
gpt4 key购买 nike

我有三个图表,我希望能够在 ScrollView 中使用页面控件滚动浏览它们,我想知道设置此图表的最佳方法是什么。我见过的大多数教程都以编程方式设置 View ,但为了使用图表,我必须创建 UIViews已经在 Storyboard中了,所以我想知道设置 scrollView 的最佳方法是什么?是不是每个图表都在单独的页面上?

enter image description here

相关代码行如下。我需要将包含图表的 UIView 拖到其他地方吗?还是不能在 Storyboard 上完成?

import UIKit
import Charts

class ChartsViewController: UIViewController {

// MARK: Types

enum TimePeriod: Int {
case day = 0
case week = 1
case month = 2
case year = 3
}

// MARK: Properties

var period: TimePeriod = .day {
didSet {
print(self.period)
}
}

@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pieChart: PieChartView!
@IBOutlet weak var segmentedControl: UISegmentedControl!
@IBOutlet weak var barChart: BarChartView!
@IBOutlet weak var lineChart: LineChartView!

func lineChartUpdate() {
var lineChartEntry = [ChartDataEntry]()
for i in 0 ..< 15 {
let value = ChartDataEntry(x: Double(i), y: Double(i))
lineChartEntry.append(value)
}
let line1 = LineChartDataSet(values: lineChartEntry, label: "Category 1")
let data = LineChartData(dataSets: [line1])
lineChart.data = data
lineChart.chartDescription?.text = "Line Chart"

lineChart.notifyDataSetChanged()
}

func configurePageControl() {
self.pageControl.numberOfPages = 3
self.pageControl.currentPage = 0
}

@IBAction func renderCharts(_ sender: UISlider) {
pieChartUpdate()
barChartUpdate()
}

@IBAction func segmentedControlSelectedIndexDidChange(_ sender: UISegmentedControl) {
self.period = TimePeriod(rawValue: sender.selectedSegmentIndex)!
}

// MARK: UIViewController

override func viewDidLoad() {
super.viewDidLoad()
configurePageControl()
pieChartUpdate()
barChartUpdate()
lineChartUpdate()
scrollView.addSubview(pieChart)
scrollView.addSubview(barChart)
scrollView.addSubview(lineChart)
}

@IBAction func pageChange(_ sender: UIPageControl) {

}


}

最佳答案

您可以在 xib 中创建 View ,然后以编程方式添加到 ScrollView 中。

示例:

您有三个 View 。

查看1

查看2

查看2

您可以将它们添加到 ScrollView :

override func viewDidLoad() {
super.viewDidLoad()
view1 = View1(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 100))
scrollView.addSubview(view1!)
view2 = View2(frame: CGRect(x: UIScreen.main.bounds.width, y: 0, width: UIScreen.main.bounds.width, height: 522))
scrollView.addSubview(view2!)
view3 = View3(frame: CGRect(x: UIScreen.main.bounds.width*2, y: 0, width: UIScreen.main.bounds.width, height: height))
scrollView.addSubview(view3!)
}

关于ios - Storyboard中带有 PageControl 的 ScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788233/

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