iOS 圖表庫:SwiftCharts

jopen 9年前發布 | 28K 次閱讀 iOS開發 移動開發 SwiftCharts

wiftCharts for iOS 是基于圖層的圖表庫。

特性列表:

  • Bars - plain, stacked, grouped, horizontal, vertical
  • Scatter
  • Line / Multiple lines
  • Areas
  • Bubble
  • Multiple axis
  • Custom units
  • Custom views
  • Multiple labels (x axis)
  • Candlestick
  • Cubic line
  • Complex interactivity support
  • Easy extensibility
  • </ul>

    Swift 1.2, iOS 7/8

    iOS 圖表庫:SwiftCharts iOS 圖表庫:SwiftCharts

    let labelSettings = ChartLabelSettings(font: ExamplesDefaults.labelFont)
    
    let chartPoints = [(2, 2), (3, 1), (5, 9), (6, 7), (8, 10), (9, 9), (10, 15), (13, 8), (15, 20), (16, 17)].map{ChartPoint(x: ChartAxisValueInt($0.0), y: ChartAxisValueInt($0.1))}
    
    let xValues = Array(stride(from: 2, through: 16, by: 2)).map {ChartAxisValueInt($0, labelSettings: labelSettings)}
    let yValues = Array(stride(from: 0, through: 20, by: 2)).map {ChartAxisValueInt($0, labelSettings: labelSettings)}
    
    let xModel = ChartAxisModel(axisValues: xValues, axisTitleLabel: ChartAxisLabel(text: "Axis title", settings: labelSettings))
    let yModel = ChartAxisModel(axisValues: yValues, axisTitleLabel: ChartAxisLabel(text: "Axis title", settings: labelSettings))
    let chartFrame = ExamplesDefaults.chartFrame(self.view.bounds)
    
    let chartSettings = ExamplesDefaults.chartSettings
    let coordsSpace = ChartCoordsSpaceLeftBottomSingleAxis(chartSettings: chartSettings, chartFrame: chartFrame, xModel: xModel, yModel: yModel)
    let (xAxis, yAxis, innerFrame) = (coordsSpace.xAxis, coordsSpace.yAxis, coordsSpace.chartInnerFrame)
    
    // create layer with line
    let lineModel = ChartLineModel(chartPoints: chartPoints, lineColor: UIColor(red: 0.4, green: 0.4, blue: 1, alpha: 0.2), lineWidth: 3, animDuration: 0.7, animDelay: 0)
    let chartPointsLineLayer = ChartPointsLineLayer(xAxis: xAxis, yAxis: yAxis, innerFrame: innerFrame, lineModels: [lineModel])
    
    // view generator - creates circle view for each chartpoint
    let circleViewGenerator = {(chartPointModel: ChartPointLayerModel, layer: ChartPointsLayer, chart: Chart) -> UIView? in
        return ChartPointCircleView(center: chartPointModel.screenLoc, size: CGSizeMake(20, 20), settings: ChartPointCircleViewSettings(animDuration: 0.5))
    }
    // create layer that uses the view generator
    let chartPointsCircleLayer = ChartPointsViewsLayer(xAxis: xAxis, yAxis: yAxis, innerFrame: innerFrame, chartPoints: chartPoints, viewGenerator: circleViewGenerator, displayDelay: 0, delayBetweenItems: 0.05)
    
    // create layer with guidelines
    var settings = ChartGuideLinesDottedLayerSettings(linesColor: UIColor.blackColor(), linesWidth: ExamplesDefaults.guidelinesWidth, axis: .XAndY)
    let guidelinesLayer = ChartGuideLinesDottedLayer(xAxis: xAxis, yAxis: yAxis, innerFrame: innerFrame, settings: settings)
    
    let chart = Chart(
        frame: chartFrame,
        layers: [
            xAxis,
            yAxis,
            guidelinesLayer,
            chartPointsLineLayer,
            chartPointsCircleLayer
        ]
    )
    
    self.view.addSubview(chart.view)
    self.chart = chart

    項目主頁:http://www.baiduhome.net/lib/view/home/1432716030035

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!