2017-12-13 16 views
0

私は、スクロールビューでページコントロールでスクロールできる3つのチャートを用意していますが、これを設定する最良の方法はなんですか?私が見たチュートリアルのほとんどは、プログラムによってビューをセットアップしましたが、チャートを使用するためにはすでにUIViewsをストーリーボードに作成しなければならなかったので、scrollViewを設定する最良の方法は、チャートがそれぞれ別のページ?コードのPageControlをStoryboardで使用するScrollView

enter image description here

関連する行は以下の通りです。グラフを含むUIViewを別の場所にドラッグする必要がありますか?それとも、ストーリーボードではできないのですか?

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) { 

    } 


} 

答えて

0

xibでビューを作成し、プログラムでスクロールビューに追加できます。

例:

次の3つのビューを持っています。

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!) 
} 
:あなたがscrollviewようにそれらを追加することができます

VIEW1

VIEW2

VIEW2

関連する問題