diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..1878f561b1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ +> ℹ Please fill out this template when filing an issue. +> All lines beginning with an ℹ symbol instruct you with what info we expect. You can delete those lines once you've filled in the info. +> +> Per our [*CONTRIBUTING guidelines](https://github.com/jjatie/Charts/blob/master/CONTRIBUTING.md), we use GitHub for +> bugs and feature requests, not general support. Other issues should be opened on Stack Overflow with the tag [`ios-charts`.](https://stackoverflow.com/questions/tagged/ios-charts) +> +> Please remove this line and everything above it before submitting. + +* [ ] I've read, understood, and done my best to follow the [*CONTRIBUTING guidelines](https://github.com/jjatie/Charts/blob/master/CONTRIBUTING.md). + +## What did you do? + +ℹ Please replace this with what you did. + +## What did you expect to happen? + +ℹ Please replace this with what you expected to happen. + +## What happened instead? + +ℹ Please replace this with of what happened instead. + +## Charts Environment + +**Charts version/Branch/Commit Number:** +**Xcode version:** +**Swift version:** +**Platform(s) running Charts:** +**macOS version running Xcode:** + +## Demo Project + +ℹ Please link to or upload a project we can download that reproduces the issue. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..30eee84561 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,13 @@ +### Issue Link :link: + + +### Goals :soccer: + + + +### Implementation Details :construction: + + + +### Testing Details :mag: + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8ba8e0ead7..c49c6a1c26 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ fastlane/test_output Carthage Charts.framework.zip ChartsRealm.framework.zip +.swiftpm/ diff --git a/.travis.yml b/.travis.yml index 3f56fe5082..70a7ecaee0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,25 @@ -osx_image: xcode8.3 language: objective-c -rvm: -- 2.2 +osx_image: xcode11 +matrix: + include: + - osx_image: xcode11 + env: PLATFORM="iOS" + - osx_image: xcode11 + env: PLATFORM="tvOS" + - osx_image: xcode11 + env: PLATFORM="macOS" env: global: - - LANG=en_US.UTF-8 - - secure: HRl5Cg3/LmTJYCSDGtV8Fiqf6OgWXR6C5YkNviOElU9YmcCTvnmE7MCm+gK8hJNIQ2mWCBTlxTC7jJxeYlx0D+JQ6IhRc75B4zXgbtth6HCzlvhWDcBbNU/K+JPDjy2EAoVgvf8Xseq6GqM4WcVg2Pwr9PS3aaH/SKDE6yVoPXRM2wXRAxIdxayqm/RQgG88jAKgg+Ub5DKW/c9NLLbUf/WdY9SgQDJtqeZCMv7G3/IzW34KZgVPsqSrPByzZXbf7KgYkYLQlscH4mcUctk1qxhdCae//zcgUZo/utpXWbPXQqtvDpuqrg9IRvoGxa/D1I7dLSJsVnk4aP7RW18vn4HJ82C2AiEp+lU2TQE9y5lXcGssZVIa5aZNTWL90HVer3Kg6AnHffvdCSZ/UHsMZJFURUXL9fRIlWVGuEDeQOqlV6lUmEtp/BiEdV4D5PuCyT6snsmEwkc51goyqh6uS6XhJyqYEQdxdoybznwp91tVmASsRybppIGHTkcWN5csF4zQt40tEwd8LoqM+bBUo0wxKiKsNsecL4JA+YDYs2saZY9U3s8jAaIon+qDu071fPRaPEvBhYHYDhy4cTvBXibyGUYGHkrgLu0w19wDfHcJKt2In58yOmaCCLNoTGp/ZLNVRyZ8VDlj/NdJ2dWpMsL2Aj7OxU065kCL2FlvuRU= - matrix: - - PLATFORM="iOS" - - PLATFORM="tvOS" - - PLATFORM="macOS" + - LANG=en_US.UTF-8 + - secure: HRl5Cg3/LmTJYCSDGtV8Fiqf6OgWXR6C5YkNviOElU9YmcCTvnmE7MCm+gK8hJNIQ2mWCBTlxTC7jJxeYlx0D+JQ6IhRc75B4zXgbtth6HCzlvhWDcBbNU/K+JPDjy2EAoVgvf8Xseq6GqM4WcVg2Pwr9PS3aaH/SKDE6yVoPXRM2wXRAxIdxayqm/RQgG88jAKgg+Ub5DKW/c9NLLbUf/WdY9SgQDJtqeZCMv7G3/IzW34KZgVPsqSrPByzZXbf7KgYkYLQlscH4mcUctk1qxhdCae//zcgUZo/utpXWbPXQqtvDpuqrg9IRvoGxa/D1I7dLSJsVnk4aP7RW18vn4HJ82C2AiEp+lU2TQE9y5lXcGssZVIa5aZNTWL90HVer3Kg6AnHffvdCSZ/UHsMZJFURUXL9fRIlWVGuEDeQOqlV6lUmEtp/BiEdV4D5PuCyT6snsmEwkc51goyqh6uS6XhJyqYEQdxdoybznwp91tVmASsRybppIGHTkcWN5csF4zQt40tEwd8LoqM+bBUo0wxKiKsNsecL4JA+YDYs2saZY9U3s8jAaIon+qDu071fPRaPEvBhYHYDhy4cTvBXibyGUYGHkrgLu0w19wDfHcJKt2In58yOmaCCLNoTGp/ZLNVRyZ8VDlj/NdJ2dWpMsL2Aj7OxU065kCL2FlvuRU= cache: -- bundler + - bundler before_install: -- brew update -- brew upgrade carthage || true -- carthage version -- carthage bootstrap --platform $PLATFORM + - brew update + - brew upgrade carthage || true + - carthage version + - carthage bootstrap --platform $PLATFORM script: -- bundle exec rake ci[$PLATFORM] + - bundle exec rake ci[$PLATFORM] after_success: -- bash <(curl -s https://codecov.io/bash) + - bash <(curl -s https://codecov.io/bash) diff --git a/CHANGELOG.md b/CHANGELOG.md index f93ca2443c..4cbb87b8c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,1921 @@ # Change Log -## [v3.0.1](https://github.com/danielgindi/charts/tree/v3.0.1) (2016-11-20) +## [v3.4.0](https://github.com/danielgindi/Charts/tree/v3.4.0) (2019-10-09) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.3.0...v3.4.0) -[Full Changelog](https://github.com/danielgindi/charts/compare/v3.0.1...v3.0.0) +**Fixed bugs:** + +- Line charts: Line sections disappear when zoomed in \(has PR\). [\#4099](https://github.com/danielgindi/Charts/issues/4099) +- Line chart x axis animation is broken [\#4093](https://github.com/danielgindi/Charts/issues/4093) +- LineChartView.highlightValue causes CoreGraphics API errors [\#4043](https://github.com/danielgindi/Charts/issues/4043) +- Horizontal Bezier Line Graph Not Drawing Through All Points [\#3960](https://github.com/danielgindi/Charts/issues/3960) +- Index out of bounds exception in v3.2 in createAccessibleElement [\#3659](https://github.com/danielgindi/Charts/issues/3659) + +**Closed issues:** + +- Xcode asking for constants instead of variables in Charts code [\#4161](https://github.com/danielgindi/Charts/issues/4161) +- Blank space should not exist in BarChartView [\#4157](https://github.com/danielgindi/Charts/issues/4157) +- Could not find module 'Charts' for target 'arm64-apple-ios'; found: x86\_64-apple-ios-simulator, x86\_64 [\#4154](https://github.com/danielgindi/Charts/issues/4154) +- 指定哪个swift版本都报语法错误 [\#4145](https://github.com/danielgindi/Charts/issues/4145) +- lineChart customize the color or style of the selected point [\#4144](https://github.com/danielgindi/Charts/issues/4144) +- How do I customize the color or style of the selected point in a polygraph [\#4143](https://github.com/danielgindi/Charts/issues/4143) +- Help, How to achieve this style? [\#4138](https://github.com/danielgindi/Charts/issues/4138) +- AutoScaleMinMax doesn't work in candlestick iOS [\#4135](https://github.com/danielgindi/Charts/issues/4135) +- 怎么手动设定滚动到指定x坐标 [\#4130](https://github.com/danielgindi/Charts/issues/4130) +- The reuse of charts on tableviewcell [\#4127](https://github.com/danielgindi/Charts/issues/4127) +- LineChartView decrease height if add many LineChartDataSets [\#4122](https://github.com/danielgindi/Charts/issues/4122) +- 堆叠柱状图不同数据之间的间距 [\#4120](https://github.com/danielgindi/Charts/issues/4120) +- Removing LineChartView to save memory? [\#4114](https://github.com/danielgindi/Charts/issues/4114) +- h [\#4110](https://github.com/danielgindi/Charts/issues/4110) +- swift 5 [\#4107](https://github.com/danielgindi/Charts/issues/4107) +- Scatter charts dots needs to be shown even it is less than half [\#4096](https://github.com/danielgindi/Charts/issues/4096) +- barchart 1st bar offset [\#4092](https://github.com/danielgindi/Charts/issues/4092) +- Compiling Chart with Swift 5.1 raises compilation error [\#4090](https://github.com/danielgindi/Charts/issues/4090) +- How to change color for Key's Label ? [\#4088](https://github.com/danielgindi/Charts/issues/4088) +- y axis [\#4087](https://github.com/danielgindi/Charts/issues/4087) +- No chart data available \(displaying large data sets\) [\#4075](https://github.com/danielgindi/Charts/issues/4075) +- 3.2.2 xBounds starts from 1 [\#4073](https://github.com/danielgindi/Charts/issues/4073) +- Build error on Xcode 11 beta 3 - macOS app [\#4071](https://github.com/danielgindi/Charts/issues/4071) +- Why not fix \#3865 in swift4.2 as well? [\#4067](https://github.com/danielgindi/Charts/issues/4067) +- Pod install failed - Could not found branch v3.3 issue [\#4063](https://github.com/danielgindi/Charts/issues/4063) +- Potential bug highlighting Bars in Bar chart [\#4062](https://github.com/danielgindi/Charts/issues/4062) +- PieChart slices with different height/thick [\#4061](https://github.com/danielgindi/Charts/issues/4061) +- Line Chart crashes when upgrading from 3.2.1 to 3.2.2 or greater [\#4060](https://github.com/danielgindi/Charts/issues/4060) +- How to set the shadow width? [\#4058](https://github.com/danielgindi/Charts/issues/4058) +- iOS13 port [\#4056](https://github.com/danielgindi/Charts/issues/4056) +- Embedding in Objective C++ project [\#4054](https://github.com/danielgindi/Charts/issues/4054) +- Example project does not work for latest swift [\#4053](https://github.com/danielgindi/Charts/issues/4053) +- Line chart line color array issue [\#4052](https://github.com/danielgindi/Charts/issues/4052) +- I set the display is double but turned into an integer [\#4051](https://github.com/danielgindi/Charts/issues/4051) +- xAxis Renderer label [\#4039](https://github.com/danielgindi/Charts/issues/4039) +- Highlight midPoint of visible area [\#4032](https://github.com/danielgindi/Charts/issues/4032) +- Snap to position for x values \(paging\) [\#4030](https://github.com/danielgindi/Charts/issues/4030) +- how can I use both chart in one view like video? [\#4026](https://github.com/danielgindi/Charts/issues/4026) +- How to Parse xValue and yValue to LineChartData ? [\#4025](https://github.com/danielgindi/Charts/issues/4025) +- Fatal error: Index out of range from subscript\(position: Index\) -\> Element [\#4024](https://github.com/danielgindi/Charts/issues/4024) +- Pie chart label [\#4022](https://github.com/danielgindi/Charts/issues/4022) +- Cannot find "@import Charts;" in -Swift.h, I can only @import Charts in OC files, anything I missed? [\#4021](https://github.com/danielgindi/Charts/issues/4021) +- Cannot subclass LineChartRenderer with Clang 11 [\#4018](https://github.com/danielgindi/Charts/issues/4018) +- Unable to compile with Swift Package Manager due to missing dependencies [\#4016](https://github.com/danielgindi/Charts/issues/4016) +- Show values in marker when you click a circle in LineChart [\#4015](https://github.com/danielgindi/Charts/issues/4015) +- Is it possible to show only part of series on full XAxis labels? [\#4014](https://github.com/danielgindi/Charts/issues/4014) +- BarChartRenderer FatalError: Index out of range [\#4013](https://github.com/danielgindi/Charts/issues/4013) +- how to set max zoom scale for y-axis [\#4011](https://github.com/danielgindi/Charts/issues/4011) +- ScatterChartDataSet basic initializer causes crashes [\#4010](https://github.com/danielgindi/Charts/issues/4010) +- oc project could't use [\#4008](https://github.com/danielgindi/Charts/issues/4008) +- Line chart issue [\#4005](https://github.com/danielgindi/Charts/issues/4005) +- Crash on PieChartRenderer line 833 [\#4001](https://github.com/danielgindi/Charts/issues/4001) +- BarChartView shows on UI when y value is zero [\#4000](https://github.com/danielgindi/Charts/issues/4000) +- can make excel [\#3999](https://github.com/danielgindi/Charts/issues/3999) +- Cannot remove an observer for the key path "bounds" because it is not registered as an observer [\#3995](https://github.com/danielgindi/Charts/issues/3995) +- How to set y axis value with larger difference because my candles are showing very small in size please provide any way [\#3993](https://github.com/danielgindi/Charts/issues/3993) +- compiling for iOS 8.0, but module 'Charts' has a minimum deployment target of iOS 8.4: [\#3992](https://github.com/danielgindi/Charts/issues/3992) +- SIGABRT [\#3986](https://github.com/danielgindi/Charts/issues/3986) +- Getting The below error on Xcode update: Error Group :-1: Undefined symbol: \_OBJC\_CLASS\_$\_XBarChart :-1: Undefined symbol: \_OBJC\_CLASS\_$\_XBarChartConfiguration :-1: Undefined symbol: \_OBJC\_CLASS\_$\_XBarItem, When I run on real device. [\#3985](https://github.com/danielgindi/Charts/issues/3985) +- Second to last value in stacked BarChart not drawn when the last value is zero [\#3984](https://github.com/danielgindi/Charts/issues/3984) +- Value labels are not always showing in horizontal bar chart [\#3981](https://github.com/danielgindi/Charts/issues/3981) +- When I manually integrated "charts", running the iOS9.0 emulator crashed. [\#3980](https://github.com/danielgindi/Charts/issues/3980) +- LineChartDataSet function setColors is unavailable? [\#3979](https://github.com/danielgindi/Charts/issues/3979) +- notifyDataSetChanged\(\) crashes with CGAffineTransformInvert: singular matrix. [\#3978](https://github.com/danielgindi/Charts/issues/3978) +- this version is 3.2.2 in pods, this version has problem [\#3977](https://github.com/danielgindi/Charts/issues/3977) +- Undefined symbol: method descriptor for Charts.ChartViewBase.initialize\(\) -\> \(\) [\#3976](https://github.com/danielgindi/Charts/issues/3976) +- PieChart highlightEnabled flag operation is reverse of setting [\#3975](https://github.com/danielgindi/Charts/issues/3975) +- I am not getting the last value of x axis in the group chart [\#3974](https://github.com/danielgindi/Charts/issues/3974) +- Charts 3.3.0 not running on Xcode 10.2 [\#3972](https://github.com/danielgindi/Charts/issues/3972) +- change line chart legend text color [\#3971](https://github.com/danielgindi/Charts/issues/3971) +- drawCenterTextEnable [\#3969](https://github.com/danielgindi/Charts/issues/3969) +- Installing version 3.3 from Pods not found [\#3968](https://github.com/danielgindi/Charts/issues/3968) +- zero value in bar chart [\#3967](https://github.com/danielgindi/Charts/issues/3967) +- \[Question\] Line Chart Filled Circle Hole when highlighted [\#3966](https://github.com/danielgindi/Charts/issues/3966) +- How to change pie chart boarder color and width size ? and separator line width size and curve? in swift 4 [\#3959](https://github.com/danielgindi/Charts/issues/3959) +- Charts Pagination [\#3957](https://github.com/danielgindi/Charts/issues/3957) +- button press [\#3956](https://github.com/danielgindi/Charts/issues/3956) +- Edit leading Trailing and width of bar [\#3954](https://github.com/danielgindi/Charts/issues/3954) +- Can't suspend the ongoing drag [\#3953](https://github.com/danielgindi/Charts/issues/3953) +- incorrect display in LineChartView When all yAxis data being 0 [\#3950](https://github.com/danielgindi/Charts/issues/3950) +- Balloon Marker Swift errors [\#3947](https://github.com/danielgindi/Charts/issues/3947) +- Linhas de sobreposição PieChart [\#3942](https://github.com/danielgindi/Charts/issues/3942) +- Display Attributed String on X-Axis [\#3941](https://github.com/danielgindi/Charts/issues/3941) +- getHighlightByTouchPoint will get nil [\#3940](https://github.com/danielgindi/Charts/issues/3940) +- Fatal error: removeEntry is not implemented in ChartBaseDataSet: [\#3937](https://github.com/danielgindi/Charts/issues/3937) +- Line graph points create lines to other points [\#3936](https://github.com/danielgindi/Charts/issues/3936) +- CombinedChart and data [\#3930](https://github.com/danielgindi/Charts/issues/3930) +- Gradient and round corner in bar chart [\#3928](https://github.com/danielgindi/Charts/issues/3928) +- Slide space color pie-chart [\#3926](https://github.com/danielgindi/Charts/issues/3926) +- Cannot build enterprise with Charts [\#3924](https://github.com/danielgindi/Charts/issues/3924) +- ChartUtils.swift line 225 [\#3922](https://github.com/danielgindi/Charts/issues/3922) +- Not Drawing Chart With Exact Axis [\#3921](https://github.com/danielgindi/Charts/issues/3921) +- LineChartView with a line that goes backwards [\#3919](https://github.com/danielgindi/Charts/issues/3919) +- Remove slices text in pieChart [\#3918](https://github.com/danielgindi/Charts/issues/3918) +- Crash at BarChartDataSet as! IBarChartDataSet [\#3917](https://github.com/danielgindi/Charts/issues/3917) +- carthage support lagging - needs updating for Xcode 10.2 & Swift5 [\#3914](https://github.com/danielgindi/Charts/issues/3914) +- The first dot doesn't show up when I use lineChart [\#3912](https://github.com/danielgindi/Charts/issues/3912) +- How to listen to the end of a chart swipe to call a method [\#3911](https://github.com/danielgindi/Charts/issues/3911) +- How to display single data when using LineChartView [\#3910](https://github.com/danielgindi/Charts/issues/3910) +- Straight Line in third quadrant does't show up [\#3898](https://github.com/danielgindi/Charts/issues/3898) +- Horizontal scrolling in long vertical tableView causes the outer table to jump [\#3866](https://github.com/danielgindi/Charts/issues/3866) +- PieChart with value lines with very small values render values on top of each other [\#3613](https://github.com/danielgindi/Charts/issues/3613) +- Line Chart do not draw line for Data Set [\#2567](https://github.com/danielgindi/Charts/issues/2567) +- Stacked bar marker returns entry.y of entire stack [\#2173](https://github.com/danielgindi/Charts/issues/2173) +- Repeating Xaxis values [\#2143](https://github.com/danielgindi/Charts/issues/2143) + +**Merged pull requests:** + +- Apply Xcode11 changes [\#4153](https://github.com/danielgindi/Charts/pull/4153) ([liuxuan30](https://github.com/liuxuan30)) +- Fixes \#4099: Line renderer did not render lines if their coordinates fell outside of the viewport. [\#4100](https://github.com/danielgindi/Charts/pull/4100) ([4np](https://github.com/4np)) +- Fix line chart x axis animation \#4093, also close \#3960 [\#4094](https://github.com/danielgindi/Charts/pull/4094) ([liuxuan30](https://github.com/liuxuan30)) +- Update License [\#4055](https://github.com/danielgindi/Charts/pull/4055) ([jobinsjohn](https://github.com/jobinsjohn)) +- fixed stacked chart bug when there are different stacks on columns. [\#4029](https://github.com/danielgindi/Charts/pull/4029) ([Scalman](https://github.com/Scalman)) +- Fix Swift Package Manager compile issue [\#4017](https://github.com/danielgindi/Charts/pull/4017) ([rynecheow](https://github.com/rynecheow)) +- Added a safety check before an unsafe array operation [\#4006](https://github.com/danielgindi/Charts/pull/4006) ([UberNick](https://github.com/UberNick)) +- fix \#3975 \(pie chart highlight disabled will lead to empty slice\) [\#3996](https://github.com/danielgindi/Charts/pull/3996) ([liuxuan30](https://github.com/liuxuan30)) +- For \#3917. make init\(label: String?\) convenient initializer [\#3973](https://github.com/danielgindi/Charts/pull/3973) ([liuxuan30](https://github.com/liuxuan30)) +- Avoid passing NaN to CoreGraphics API \(Fixes \#1626\) [\#2568](https://github.com/danielgindi/Charts/pull/2568) ([chiahan1123](https://github.com/chiahan1123)) + +## [v3.3.0](https://github.com/danielgindi/Charts/tree/v3.3.0) (2019-04-24) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.2.2...v3.3.0) + +**Implemented enhancements:** + +- Provide pre-compiled universal binary [\#3867](https://github.com/danielgindi/Charts/issues/3867) +- Renamed `values` to `entries` to reflect the property's type [\#3847](https://github.com/danielgindi/Charts/pull/3847) ([jjatie](https://github.com/jjatie)) + +**Fixed bugs:** + +- Pie chart with vertical orientation clips last legend entry [\#3860](https://github.com/danielgindi/Charts/issues/3860) + +**Closed issues:** + +- 雷达图的拐点是怎么设置的 [\#3964](https://github.com/danielgindi/Charts/issues/3964) +- BarChartView没有从0开始 [\#3963](https://github.com/danielgindi/Charts/issues/3963) +- version 3.3 using spm results invalid string error [\#3962](https://github.com/danielgindi/Charts/issues/3962) +- 折线图能分页吗 就是滑动到最左边 网络请求再加载数据 [\#3961](https://github.com/danielgindi/Charts/issues/3961) +- BarChartView problem on dataset count changed [\#3958](https://github.com/danielgindi/Charts/issues/3958) +- No Such Module 'Charts' [\#3955](https://github.com/danielgindi/Charts/issues/3955) +- drawing asynchronous [\#3952](https://github.com/danielgindi/Charts/issues/3952) +- demo can not run [\#3951](https://github.com/danielgindi/Charts/issues/3951) +- BarChartView extends all bars to bottom when all values are negative [\#3949](https://github.com/danielgindi/Charts/issues/3949) +- xcode10.2,swift5,chart version 3.3.0 [\#3948](https://github.com/danielgindi/Charts/issues/3948) +- Compiling for iOS 8.1, but module 'Charts' has a minimum deployment target of iOS 8.4 [\#3946](https://github.com/danielgindi/Charts/issues/3946) +- X轴的Label显示间隔会随着值的增加而变大, 能控制显示间隔吗? [\#3943](https://github.com/danielgindi/Charts/issues/3943) +- the first point of LineChartView is not displayed, and so is demo [\#3938](https://github.com/danielgindi/Charts/issues/3938) +- why????? [\#3934](https://github.com/danielgindi/Charts/issues/3934) +- The “Swift Language Version” \(SWIFT\_VERSION\) build setting must be set to a supported value for targets which use Swift. Supported values are: 4.0, 4.2, 5.0. This setting can be set in the build settings editor. [\#3932](https://github.com/danielgindi/Charts/issues/3932) +- error: SWIFT\_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. \(in target 'Charts'\) [\#3929](https://github.com/danielgindi/Charts/issues/3929) +- 最新版更新后的问题 [\#3927](https://github.com/danielgindi/Charts/issues/3927) +- How can i get CenterEntry in the View when i setted the MaxVisibleRange? [\#3925](https://github.com/danielgindi/Charts/issues/3925) +- EXC\_BAD\_ACCESS error on PieChart [\#3923](https://github.com/danielgindi/Charts/issues/3923) +- The first dot doesn't show up when I use lineChart [\#3915](https://github.com/danielgindi/Charts/issues/3915) +- Swift 5 Support w/ Cocoapods [\#3913](https://github.com/danielgindi/Charts/issues/3913) +- HOW to create pie chart like below image . https://user-images.githubusercontent.com/20434573/54804603-1d31fa80-4c9a-11e9-9960-00cf7c7d117d.png [\#3908](https://github.com/danielgindi/Charts/issues/3908) +- x Axis grid line origin is wrong ! maybe a bug, anxious!!! [\#3904](https://github.com/danielgindi/Charts/issues/3904) +- why not use CAShapeLayer? [\#3903](https://github.com/danielgindi/Charts/issues/3903) +- Chart legend [\#3896](https://github.com/danielgindi/Charts/issues/3896) +- Wrong values from pixelForValues [\#3895](https://github.com/danielgindi/Charts/issues/3895) +- Cannot set labels for RadarChart [\#3893](https://github.com/danielgindi/Charts/issues/3893) +- I can't migrate the swift files\(combined chart\) in objective c project. Could please share the objective c code fully. Thanks in advance. [\#3890](https://github.com/danielgindi/Charts/issues/3890) +- Draw circle only on last value [\#3887](https://github.com/danielgindi/Charts/issues/3887) +- Mismatch left axis maximum and minimum values [\#3886](https://github.com/danielgindi/Charts/issues/3886) +- How to animate? start poisiton is not from zero. [\#3885](https://github.com/danielgindi/Charts/issues/3885) +- I want to change line chart fill colours [\#3882](https://github.com/danielgindi/Charts/issues/3882) +- Circle view is not showing for first point of line chart [\#3881](https://github.com/danielgindi/Charts/issues/3881) +- support ECG demo? [\#3880](https://github.com/danielgindi/Charts/issues/3880) +- How to remove the values given outside the circle in piechart [\#3878](https://github.com/danielgindi/Charts/issues/3878) +- file was built for x86\_64 which is not the architecture being linked \(arm64\):error: linker command failed with exit code 1 \(use -v to see invocation\) [\#3877](https://github.com/danielgindi/Charts/issues/3877) +- Clipping first and last circle from line chart IOS. [\#3873](https://github.com/danielgindi/Charts/issues/3873) +- Smoothly moving a slowly changing linechart [\#3859](https://github.com/danielgindi/Charts/issues/3859) +- Monthly X-Axis labels \(corresponding values\) in my LineChart are not at the right position [\#3858](https://github.com/danielgindi/Charts/issues/3858) +- CandleChart do not render the first candle in CombineChartView [\#3857](https://github.com/danielgindi/Charts/issues/3857) +- Have 2 or more tresholds for one graph [\#3856](https://github.com/danielgindi/Charts/issues/3856) +- Unexpected crash on 3.2.2 [\#3855](https://github.com/danielgindi/Charts/issues/3855) +- How to change the display of legends? [\#3853](https://github.com/danielgindi/Charts/issues/3853) +- I want to call a method after the chart has been dragged and stopped. How can I detect it and the chart has stopped? [\#3851](https://github.com/danielgindi/Charts/issues/3851) +- HorizontalBarChartView bar negative values position [\#3850](https://github.com/danielgindi/Charts/issues/3850) +- charts 有数据创建图表后,点击按钮将数据置为空则崩溃 [\#3849](https://github.com/danielgindi/Charts/issues/3849) +- No circle is drawn on a line chart when there is only one data. \(version 3.2.2 only\) [\#3848](https://github.com/danielgindi/Charts/issues/3848) +- slice color [\#3844](https://github.com/danielgindi/Charts/issues/3844) +- BarChartView showing consecutive values in xAxis [\#3843](https://github.com/danielgindi/Charts/issues/3843) +- How to hide those icons? [\#3842](https://github.com/danielgindi/Charts/issues/3842) +- Swift 4.2: 'values' is deprecated Warnings [\#3840](https://github.com/danielgindi/Charts/issues/3840) +- Y-axis values draw error [\#3837](https://github.com/danielgindi/Charts/issues/3837) +- Horizontal Bar Chart Value Labels Cut Off [\#3836](https://github.com/danielgindi/Charts/issues/3836) +- The right Y axis displays incorrect values that does not fit the chart [\#3835](https://github.com/danielgindi/Charts/issues/3835) +- How to align labels on left side and put values inside bars on HorizontalBarChartView? \[HELP WANTED\] [\#3833](https://github.com/danielgindi/Charts/issues/3833) +- How to show the tooltip like value when clicked on candle of candleStick chart [\#3832](https://github.com/danielgindi/Charts/issues/3832) +- In line chart, can I make all labels in Chart area even with changing yOffset? [\#3829](https://github.com/danielgindi/Charts/issues/3829) +- Multiline value labels on BarChart. [\#3826](https://github.com/danielgindi/Charts/issues/3826) +- how can I spin the selected slice of piechart to top. [\#3825](https://github.com/danielgindi/Charts/issues/3825) +- Update Cocoapods [\#3773](https://github.com/danielgindi/Charts/issues/3773) +- Select circles on line chart [\#3307](https://github.com/danielgindi/Charts/issues/3307) + +**Merged pull requests:** + +- Fix horizontal bar chart not drawing values and add unit tests [\#3906](https://github.com/danielgindi/Charts/pull/3906) ([liuxuan30](https://github.com/liuxuan30)) +- fix \#3860. maxHeight didn't count the last label [\#3900](https://github.com/danielgindi/Charts/pull/3900) ([liuxuan30](https://github.com/liuxuan30)) +- Migrating to built-in algorithms [\#3892](https://github.com/danielgindi/Charts/pull/3892) ([jjatie](https://github.com/jjatie)) +- Use a stock iterator instead of a custom one. [\#3891](https://github.com/danielgindi/Charts/pull/3891) ([phughes](https://github.com/phughes)) +- Removed unnecessary \#if statements and unified style to align with Xc… [\#3884](https://github.com/danielgindi/Charts/pull/3884) ([jjatie](https://github.com/jjatie)) +- Velocity samples calculation [\#3883](https://github.com/danielgindi/Charts/pull/3883) ([jjatie](https://github.com/jjatie)) +- Minor updates for Swift 5 [\#3874](https://github.com/danielgindi/Charts/pull/3874) ([jjatie](https://github.com/jjatie)) +- Replace AnyObject with Any [\#3864](https://github.com/danielgindi/Charts/pull/3864) ([jjatie](https://github.com/jjatie)) +- Data as any [\#3863](https://github.com/danielgindi/Charts/pull/3863) ([jjatie](https://github.com/jjatie)) +- Reassess convenience initializers [\#3862](https://github.com/danielgindi/Charts/pull/3862) ([jjatie](https://github.com/jjatie)) +- HorizontalBarChar value label offset calculation [\#3854](https://github.com/danielgindi/Charts/pull/3854) ([chaaarly](https://github.com/chaaarly)) +- Create `chartViewDidEndAnimate` in ChartViewDelegate [\#3852](https://github.com/danielgindi/Charts/pull/3852) ([Lcsmarcal](https://github.com/Lcsmarcal)) +- Align `ChartLimit.LabelPosition` naming with `UIRectCorner` [\#3846](https://github.com/danielgindi/Charts/pull/3846) ([jjatie](https://github.com/jjatie)) + +## [v3.2.2](https://github.com/danielgindi/Charts/tree/v3.2.2) (2019-02-13) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.2.1...v3.2.2) + +**Implemented enhancements:** + +- 【PieChart】Please support multiple colors for valueline. [\#3480](https://github.com/danielgindi/Charts/issues/3480) + +**Fixed bugs:** + +- CombinedChartView's candleData don't display in v3.2.0 [\#3662](https://github.com/danielgindi/Charts/issues/3662) +- Incorrect behavior for AxisBase.axisMaxLabels [\#3656](https://github.com/danielgindi/Charts/issues/3656) +- Horizontal Bar Chart legend issue [\#3301](https://github.com/danielgindi/Charts/issues/3301) + +**Closed issues:** + +- barchartview draw value in bottom of chart [\#3827](https://github.com/danielgindi/Charts/issues/3827) +- Regarding to label of axis, I think it displays .03 instead of 0.03 [\#3824](https://github.com/danielgindi/Charts/issues/3824) +- Bar Chart Not Showing Colours Correctly [\#3823](https://github.com/danielgindi/Charts/issues/3823) +- Pie Chart on click show value on label. Does anyone know how to do it? [\#3822](https://github.com/danielgindi/Charts/issues/3822) +- chartTranslated in a Pie Chart is not called [\#3821](https://github.com/danielgindi/Charts/issues/3821) +- Issue creating a simple line chart [\#3820](https://github.com/danielgindi/Charts/issues/3820) +- How to save image of scrollable graph [\#3819](https://github.com/danielgindi/Charts/issues/3819) +- Candle charts not showing candles on swift 4.2 [\#3818](https://github.com/danielgindi/Charts/issues/3818) +- How to get a value from line graph if there is more than one lines [\#3817](https://github.com/danielgindi/Charts/issues/3817) +- Multiple colors for the same line [\#3816](https://github.com/danielgindi/Charts/issues/3816) +- Memory Leaks in subclass of LineChartView [\#3813](https://github.com/danielgindi/Charts/issues/3813) +- Distortion When Animating Height of Auto Layout `LineChartView` [\#3811](https://github.com/danielgindi/Charts/issues/3811) +- How to show break in line chart for more than one graph? [\#3810](https://github.com/danielgindi/Charts/issues/3810) +- PIE Chart Colors not properly set [\#3809](https://github.com/danielgindi/Charts/issues/3809) +- A Question to contribution [\#3808](https://github.com/danielgindi/Charts/issues/3808) +- When y value is equal ,HorizontalBarChartView only show integer [\#3806](https://github.com/danielgindi/Charts/issues/3806) +- Highlight per drag not working! [\#3805](https://github.com/danielgindi/Charts/issues/3805) +- chartTranslated is called when no translation happened [\#3803](https://github.com/danielgindi/Charts/issues/3803) +- Xcode10 real machine operation error! [\#3802](https://github.com/danielgindi/Charts/issues/3802) +- Bar Width issue after reset the data [\#3801](https://github.com/danielgindi/Charts/issues/3801) +- Performance issue: drawCircles\(context: CGContext\) in LineChart [\#3798](https://github.com/danielgindi/Charts/issues/3798) +- LineChartView Y-Aixs label'number inaccuracy [\#3794](https://github.com/danielgindi/Charts/issues/3794) +- charts在特定范围内的参考坐标精度问题 [\#3793](https://github.com/danielgindi/Charts/issues/3793) +- Change chart legend show order [\#3791](https://github.com/danielgindi/Charts/issues/3791) +- hello,I don't want to display the pie chart by zero percent. How can I do this [\#3790](https://github.com/danielgindi/Charts/issues/3790) +- how to center legend text of LineChartView? [\#3789](https://github.com/danielgindi/Charts/issues/3789) +- How to Plot only for the available x axis and leave the rest of the x axis blank? [\#3788](https://github.com/danielgindi/Charts/issues/3788) +- Custom chart marker [\#3787](https://github.com/danielgindi/Charts/issues/3787) +- How to shift xAxis values to right? [\#3785](https://github.com/danielgindi/Charts/issues/3785) +- How to disable Accessibility support? [\#3782](https://github.com/danielgindi/Charts/issues/3782) +- Feature: Add option to draw limit lines on top of data [\#3781](https://github.com/danielgindi/Charts/issues/3781) +- Legend spacing issue with LineChart and colors\[\] [\#3780](https://github.com/danielgindi/Charts/issues/3780) +- How to change value line length for each value in pieChartView [\#3776](https://github.com/danielgindi/Charts/issues/3776) +- Crash on the function isDrawingValuesAllowed [\#3772](https://github.com/danielgindi/Charts/issues/3772) +- How to let y axis line show same space when axisMinimum = 0? [\#3771](https://github.com/danielgindi/Charts/issues/3771) +- Xcode 10.1 pod install Charts open project error!!! [\#3769](https://github.com/danielgindi/Charts/issues/3769) +- Is it possible to make some gaps on a same line plot? [\#3765](https://github.com/danielgindi/Charts/issues/3765) +- Is it possible to draw custom shape on chart and handle touch on it [\#3763](https://github.com/danielgindi/Charts/issues/3763) +- Start slice automatically seleted in pie chart [\#3762](https://github.com/danielgindi/Charts/issues/3762) +- How to change color when press down on pie chart? [\#3761](https://github.com/danielgindi/Charts/issues/3761) +- notifyDataSetChanged\(\) crash when datapoint is highlighted in LineChartView [\#3759](https://github.com/danielgindi/Charts/issues/3759) +- BarChartView display half in first bar when change from group bar to bar only [\#3757](https://github.com/danielgindi/Charts/issues/3757) +- Description of Bar doesn't appear in Horizontal BarChartView [\#3756](https://github.com/danielgindi/Charts/issues/3756) +- Chart spacing between xAxis Labels [\#3755](https://github.com/danielgindi/Charts/issues/3755) +- Granularity makes my app crash because require index from zero [\#3753](https://github.com/danielgindi/Charts/issues/3753) +- this counter will make your app being crash in particular case [\#3752](https://github.com/danielgindi/Charts/issues/3752) +- Bar Chart Drawing is wrong without setting axisminimum [\#3751](https://github.com/danielgindi/Charts/issues/3751) +- Help needed - in changing the position for Piechart in SWIFT [\#3749](https://github.com/danielgindi/Charts/issues/3749) +- When using CombinedChartView, CandleChartData cannot be displayed [\#3748](https://github.com/danielgindi/Charts/issues/3748) +- Linear chart line with different thickness of direction [\#3746](https://github.com/danielgindi/Charts/issues/3746) +- I want to try a lot of line charts corresponding to the X axis is different, how can I achieve it. [\#3745](https://github.com/danielgindi/Charts/issues/3745) +- 折线图-具体时间的数据绘制进图表问题 [\#3743](https://github.com/danielgindi/Charts/issues/3743) +- Changing lineCap doesn't work when mode is not linear/stepped [\#3739](https://github.com/danielgindi/Charts/issues/3739) +- Reverse Pie Chart animation [\#3738](https://github.com/danielgindi/Charts/issues/3738) +- How to create y-axis for empty label ? [\#3735](https://github.com/danielgindi/Charts/issues/3735) +- Different colors for above and below 0 when filling a Line Chart [\#3733](https://github.com/danielgindi/Charts/issues/3733) +- How to adding multiple lines to Line Chart for swift 4.0? [\#3732](https://github.com/danielgindi/Charts/issues/3732) +- How to format y-values drawn on bar? [\#3731](https://github.com/danielgindi/Charts/issues/3731) +- how to moveViewToX and not calling setNeedsDisplay\(\) [\#3730](https://github.com/danielgindi/Charts/issues/3730) +- When using CombinedChartView, CandleChartData cannot be displayed [\#3729](https://github.com/danielgindi/Charts/issues/3729) +- Need Help. How to show labels in xAxis for GroupedBarChart? [\#3728](https://github.com/danielgindi/Charts/issues/3728) +- Force axis granularity [\#3727](https://github.com/danielgindi/Charts/issues/3727) +- Y decimal values error [\#3725](https://github.com/danielgindi/Charts/issues/3725) +- if i have 840entrys how can i set the xaxis what i want .e.g i only want to show the 0 and 840 [\#3723](https://github.com/danielgindi/Charts/issues/3723) +- if i have 840entrys how can i set the xaxis what i want .e.g i only want to show the 0 and 840 [\#3722](https://github.com/danielgindi/Charts/issues/3722) +- Align both right and left axis in the same line [\#3720](https://github.com/danielgindi/Charts/issues/3720) +- The `open var noDataTextAlignment: NSTextAlignment = .left` is missing the `@objc` so it's not exposed in Objective C. [\#3719](https://github.com/danielgindi/Charts/issues/3719) +- How to hide bottom colors & label section in Bar Chat [\#3718](https://github.com/danielgindi/Charts/issues/3718) +- Draw Line chart for non linear X-axis [\#3717](https://github.com/danielgindi/Charts/issues/3717) +- Any way to adjust the candle bar width? [\#3716](https://github.com/danielgindi/Charts/issues/3716) +- xAxis grid line in-between bar rather than center of bar [\#3713](https://github.com/danielgindi/Charts/issues/3713) +- Bubble Chart is not rendering [\#3711](https://github.com/danielgindi/Charts/issues/3711) +- Bubble Chart is not rendering [\#3710](https://github.com/danielgindi/Charts/issues/3710) +- \[Feature request\] Continue line chart beyond x-axis limits [\#3708](https://github.com/danielgindi/Charts/issues/3708) +- Use of unresolved identifier 'UIAccessibility' & Type 'UIAccessibilityTraits' \(aka 'UInt64'\) has no member 'header' [\#3707](https://github.com/danielgindi/Charts/issues/3707) +- How to draw a line chart in sections? [\#3706](https://github.com/danielgindi/Charts/issues/3706) +- \[Feature / Help\] Resize Chart based on data visibility [\#3705](https://github.com/danielgindi/Charts/issues/3705) +- \[Request / Help\] Resize Chart based on hidden / shown lines [\#3704](https://github.com/danielgindi/Charts/issues/3704) +- listening for click events in pieChartView [\#3703](https://github.com/danielgindi/Charts/issues/3703) +- How to add Strings on Left Axis in iOS-charts? [\#3702](https://github.com/danielgindi/Charts/issues/3702) +- \[Charts.BarChartDataSet setDrawIconsEnabled:\]: unrecognized selector sent to instance [\#3700](https://github.com/danielgindi/Charts/issues/3700) +- How can I set xAxis to second line? [\#3698](https://github.com/danielgindi/Charts/issues/3698) +- Add to OC project and the api is so big, How to solve this problem [\#3697](https://github.com/danielgindi/Charts/issues/3697) +- How can I call func stringForValue\(\_ value: Double, axis: AxisBase?\) -\> String [\#3696](https://github.com/danielgindi/Charts/issues/3696) +- Line chart, slide left and right to see more data? How to set it up [\#3693](https://github.com/danielgindi/Charts/issues/3693) +- Value for SWIFT\_VERSION cannot be empty. \(in target 'Charts'\) [\#3692](https://github.com/danielgindi/Charts/issues/3692) +- how to make a combine chart \(line chart + bar chart\) with leftAxis taking the top half area of the combined graph and right axis taking the bottom half [\#3690](https://github.com/danielgindi/Charts/issues/3690) +- is there any library for Gantt chart in ios swift ? please suggest me a solution..... [\#3688](https://github.com/danielgindi/Charts/issues/3688) +- Integrated to xcode10 crash [\#3687](https://github.com/danielgindi/Charts/issues/3687) +- XCode 10 app crash. [\#3686](https://github.com/danielgindi/Charts/issues/3686) +- Getting Errors in Xcode 9.2 [\#3684](https://github.com/danielgindi/Charts/issues/3684) +- How to show double vale with string in y-axis [\#3683](https://github.com/danielgindi/Charts/issues/3683) +- When I have a lot of data, how can I slide to the far right by default? [\#3682](https://github.com/danielgindi/Charts/issues/3682) +- Pie Chart - Slices are not drawn and values are overlapping [\#3679](https://github.com/danielgindi/Charts/issues/3679) +- setVisibleXRangeMaximum is behaving unexpectedly [\#3678](https://github.com/danielgindi/Charts/issues/3678) +- Getting issues after pod update. [\#3677](https://github.com/danielgindi/Charts/issues/3677) +- Pie chart and gradient [\#3674](https://github.com/danielgindi/Charts/issues/3674) +- CandleStickChartRenderer drawDataSet method does not work with CombinedChartView [\#3673](https://github.com/danielgindi/Charts/issues/3673) +- How to Hide Text? [\#3672](https://github.com/danielgindi/Charts/issues/3672) +- Memory leaks were detected also in the demo project [\#3671](https://github.com/danielgindi/Charts/issues/3671) +- Can't add two pie charts in a uiviewcontroller at same time [\#3670](https://github.com/danielgindi/Charts/issues/3670) +- ChartData ValueTextColor can not achieve a variety of colors [\#3669](https://github.com/danielgindi/Charts/issues/3669) +- PieChartView settings color is Invalid [\#3668](https://github.com/danielgindi/Charts/issues/3668) +- DrawValuesEnabled variable unreachable \(Swift 4.2\) [\#3665](https://github.com/danielgindi/Charts/issues/3665) +- Failed to verify bitcode in Charts.framework [\#3663](https://github.com/danielgindi/Charts/issues/3663) +- \[3.2.0\] Excessive Memory leaks in Swift 4.2 related to LineChartView, not present in 3.1.1 w/Swift 4 [\#3649](https://github.com/danielgindi/Charts/issues/3649) +- BarChart - xAxis Labels disappear if not a min of 2 on the screen [\#2854](https://github.com/danielgindi/Charts/issues/2854) +- 柱状图一直横向拉伸, 持续差不多 15s 就崩溃了 [\#2642](https://github.com/danielgindi/Charts/issues/2642) +- Any one try to integrate with SpriteKit/SKScene ? [\#2129](https://github.com/danielgindi/Charts/issues/2129) + +**Merged pull requests:** + +- Add Collection conformances to ChartDataSet types [\#3815](https://github.com/danielgindi/Charts/pull/3815) ([jjatie](https://github.com/jjatie)) +- Fix condition that is checked before `chartTranslated` delegate method call [\#3804](https://github.com/danielgindi/Charts/pull/3804) ([anton-filimonov](https://github.com/anton-filimonov)) +- fix \#3719 [\#3778](https://github.com/danielgindi/Charts/pull/3778) ([liuxuan30](https://github.com/liuxuan30)) +- Turned gradient components and locations into constants [\#3775](https://github.com/danielgindi/Charts/pull/3775) ([jjatie](https://github.com/jjatie)) +- add chartScaled\(\) call after double tap in BarLineChartViewBase [\#3770](https://github.com/danielgindi/Charts/pull/3770) ([artemiusmk](https://github.com/artemiusmk)) +- Fixes sharp edges on the line chart [\#3764](https://github.com/danielgindi/Charts/pull/3764) ([stokatyan](https://github.com/stokatyan)) +- Fix applying lineCap value for line chart data sets \(Fixes \#3739\) [\#3740](https://github.com/danielgindi/Charts/pull/3740) ([anton-filimonov](https://github.com/anton-filimonov)) +- Update README.md [\#3737](https://github.com/danielgindi/Charts/pull/3737) ([justinlew](https://github.com/justinlew)) +- Fix legend offset bug for horizontal bar chart \(Fixes \#3301\) [\#3736](https://github.com/danielgindi/Charts/pull/3736) ([SvenMuc](https://github.com/SvenMuc)) +- Fix wrong assignment to axisMaxLabels property [\#3721](https://github.com/danielgindi/Charts/pull/3721) ([ggirotto](https://github.com/ggirotto)) +- Add missing properties to copy\(with:\) methods [\#3715](https://github.com/danielgindi/Charts/pull/3715) ([dstranz](https://github.com/dstranz)) +- Multiple colors for valueline \(Fixes \#3480\) [\#3709](https://github.com/danielgindi/Charts/pull/3709) ([AlexeiGitH](https://github.com/AlexeiGitH)) +- Fix memory leak after rendering [\#3680](https://github.com/danielgindi/Charts/pull/3680) ([YusukeOba](https://github.com/YusukeOba)) +- fix issue \#3662 [\#3664](https://github.com/danielgindi/Charts/pull/3664) ([Michael-Du](https://github.com/Michael-Du)) +- Make NSUIAccessibilityElement initializer public. [\#3654](https://github.com/danielgindi/Charts/pull/3654) ([417-72KI](https://github.com/417-72KI)) +- improvements in barRect height calculation [\#3650](https://github.com/danielgindi/Charts/pull/3650) ([potato04](https://github.com/potato04)) +- Update document to latest format [\#3621](https://github.com/danielgindi/Charts/pull/3621) ([kemchenj](https://github.com/kemchenj)) +- Feature - ChartView Pan Ended Delegate Call [\#3612](https://github.com/danielgindi/Charts/pull/3612) ([AntonTheDev](https://github.com/AntonTheDev)) +- Axis Renderers Cleanup [\#3164](https://github.com/danielgindi/Charts/pull/3164) ([jjatie](https://github.com/jjatie)) + +## [v3.2.1](https://github.com/danielgindi/Charts/tree/v3.2.1) (2018-10-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.2.0...v3.2.1) + +**Closed issues:** + +- Getting error after updating XCode to 10 from 9.4 [\#3661](https://github.com/danielgindi/Charts/issues/3661) +- Bar Chart with horizondal scroll on clicking button. [\#3660](https://github.com/danielgindi/Charts/issues/3660) +- How to change the piechart' valueLineColor and valueTextColor color individually [\#3658](https://github.com/danielgindi/Charts/issues/3658) +- Update to Swift 4.2 [\#3655](https://github.com/danielgindi/Charts/issues/3655) +- I am trying to use charts. for ios app. I am using cocoa pod for dependency setup. After setup i am trying to build the code it throwing compile errors. [\#3653](https://github.com/danielgindi/Charts/issues/3653) +- Type 'RunLoop' has no member 'Mode' [\#3652](https://github.com/danielgindi/Charts/issues/3652) +- Module compiled with Swift 4.1.2 cannot be imported by the Swift 4.2 [\#3651](https://github.com/danielgindi/Charts/issues/3651) +- Type 'RunLoop' has no member 'Mode' [\#3648](https://github.com/danielgindi/Charts/issues/3648) +- As of todays update, I am running into this issue. 'common' renamed RunLoopMode.commonModes [\#3647](https://github.com/danielgindi/Charts/issues/3647) +- Change circleHoleColor for one point [\#3646](https://github.com/danielgindi/Charts/issues/3646) +- This API is not working with Swift 4.1.. even after taking V3.2 of Charts API also.. I fixed it myself :\( [\#3645](https://github.com/danielgindi/Charts/issues/3645) +- Help building Charts Demo [\#3643](https://github.com/danielgindi/Charts/issues/3643) +- Limit line label orientation [\#3641](https://github.com/danielgindi/Charts/issues/3641) +- Is it possible to zoom into a range of values? [\#3639](https://github.com/danielgindi/Charts/issues/3639) +- Not working with SDK-Swift 4.2 [\#3635](https://github.com/danielgindi/Charts/issues/3635) +- getting the error that let is implicitly final please change from open to public in Xcode10 GM Seed [\#3634](https://github.com/danielgindi/Charts/issues/3634) +- How to optimize when the amount of data is large [\#3633](https://github.com/danielgindi/Charts/issues/3633) +- Adding mathematical function plotting [\#3632](https://github.com/danielgindi/Charts/issues/3632) +- Color shadow inside piechart [\#3631](https://github.com/danielgindi/Charts/issues/3631) +- I can not set one label on y axis. [\#3630](https://github.com/danielgindi/Charts/issues/3630) +- where is the code for draw the xAxis and yAxis indicateLine [\#3628](https://github.com/danielgindi/Charts/issues/3628) +- Is it possible to add a vertical label for Y-Axis? Or anyone working on it? [\#3627](https://github.com/danielgindi/Charts/issues/3627) +- Adding dashed lines in between bars in bar graph [\#3626](https://github.com/danielgindi/Charts/issues/3626) +- Create Line chart and/or Bar chart from String Array [\#3625](https://github.com/danielgindi/Charts/issues/3625) +- Change data if button press [\#3624](https://github.com/danielgindi/Charts/issues/3624) +- Pie Chart and Legend [\#3622](https://github.com/danielgindi/Charts/issues/3622) +- Add labels to marker or create custom marker view [\#3620](https://github.com/danielgindi/Charts/issues/3620) +- is there any way we can change the values font size for ipad in the same code? [\#3618](https://github.com/danielgindi/Charts/issues/3618) +- Reg: Display Min and Max Point in a PopUp [\#3617](https://github.com/danielgindi/Charts/issues/3617) +- Charts ScaleX problem [\#3616](https://github.com/danielgindi/Charts/issues/3616) +- CombinedChartView - EXC\_BAD\_ACCESS with doubleTapToZoomEnabled [\#3614](https://github.com/danielgindi/Charts/issues/3614) +- BarChartView How to set the fixed width and spacing? [\#3609](https://github.com/danielgindi/Charts/issues/3609) +- How can I combine two lineCharts? [\#3607](https://github.com/danielgindi/Charts/issues/3607) +- 'Charts/Charts-Swift.h' file not found [\#3603](https://github.com/danielgindi/Charts/issues/3603) +- Combined Chart with Horizontal Bar chart and a Line chart [\#3600](https://github.com/danielgindi/Charts/issues/3600) +- Design customization [\#3597](https://github.com/danielgindi/Charts/issues/3597) +- Move pie chart to specific location in the view [\#3595](https://github.com/danielgindi/Charts/issues/3595) +- Adding text data points to axis [\#3592](https://github.com/danielgindi/Charts/issues/3592) +- Performance hit [\#3585](https://github.com/danielgindi/Charts/issues/3585) +- Multiple colours for setValueTextColor and xAxis label with NSAttributedString [\#3566](https://github.com/danielgindi/Charts/issues/3566) +- Can't set a fixed width for YAxis with outside style. [\#3565](https://github.com/danielgindi/Charts/issues/3565) +- Switch from Grouped Bar chart back to normal [\#3551](https://github.com/danielgindi/Charts/issues/3551) +- X or Y axis interval of the labels [\#3547](https://github.com/danielgindi/Charts/issues/3547) +- How can I plot all Axis Value? [\#3540](https://github.com/danielgindi/Charts/issues/3540) +- When the number of numeric numbers on the Y axis does not agree, the right of the multiple charts will not be aligned. [\#3347](https://github.com/danielgindi/Charts/issues/3347) + +## [v3.2.0](https://github.com/danielgindi/Charts/tree/v3.2.0) (2018-09-17) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.1.1...v3.2.0) + +**Fixed bugs:** + +- Remove noDataText [\#3396](https://github.com/danielgindi/Charts/issues/3396) + +**Closed issues:** + +- Xcode 10 beta & Swift 4.2 support [\#3623](https://github.com/danielgindi/Charts/issues/3623) +- CombinedChartView not population correctly [\#3619](https://github.com/danielgindi/Charts/issues/3619) +- How to remove Cubic Line chart value? [\#3615](https://github.com/danielgindi/Charts/issues/3615) +- How to set Y axis to display different colors of label [\#3611](https://github.com/danielgindi/Charts/issues/3611) +- Installation with carthage error!!! [\#3610](https://github.com/danielgindi/Charts/issues/3610) +- xcodebuild archive error [\#3606](https://github.com/danielgindi/Charts/issues/3606) +- swift library added successfully, but can't reach any of the interfaces [\#3605](https://github.com/danielgindi/Charts/issues/3605) +- BarChart draw sum of values above bar [\#3604](https://github.com/danielgindi/Charts/issues/3604) +- iOS 12 [\#3601](https://github.com/danielgindi/Charts/issues/3601) +- v [\#3598](https://github.com/danielgindi/Charts/issues/3598) +- Compilation errors with Swift 4.1 [\#3596](https://github.com/danielgindi/Charts/issues/3596) +- Bar Chart highlights last clicked bar [\#3594](https://github.com/danielgindi/Charts/issues/3594) +- Remove hightlight, when swipe ends. Or just catch event when swipe ends [\#3588](https://github.com/danielgindi/Charts/issues/3588) +- bars did not displayed as expect [\#3586](https://github.com/danielgindi/Charts/issues/3586) +- what about the property 'gradientPositions' on branch 4.0.0, and how to use [\#3584](https://github.com/danielgindi/Charts/issues/3584) +- Creating markers for Radar Charts [\#3582](https://github.com/danielgindi/Charts/issues/3582) +- How to display value on touch? [\#3581](https://github.com/danielgindi/Charts/issues/3581) +- LineChart \(gradient fill\) is not working in Swift 4 [\#3580](https://github.com/danielgindi/Charts/issues/3580) +- Is there a way to use Line Chart with custom xAxis? [\#3579](https://github.com/danielgindi/Charts/issues/3579) +- Xaxis MutliLine and Value Multiline [\#3575](https://github.com/danielgindi/Charts/issues/3575) +- REACT NATIVE CHART ISSUE [\#3574](https://github.com/danielgindi/Charts/issues/3574) +- Data labels not shown when mutable array of entries used. [\#3573](https://github.com/danielgindi/Charts/issues/3573) +- Grid background color extends beyond data sets [\#3572](https://github.com/danielgindi/Charts/issues/3572) +- real time plot [\#3571](https://github.com/danielgindi/Charts/issues/3571) +- Add shadow effect for pie chart [\#3570](https://github.com/danielgindi/Charts/issues/3570) +- The target “Charts” contains source code developed with Swift 2.x. Xcode 9 does not support building or migrating Swift 2.x targets. [\#3569](https://github.com/danielgindi/Charts/issues/3569) +- What is the best way to show around 100'000 values? [\#3568](https://github.com/danielgindi/Charts/issues/3568) +- CandleChart In CombinedChartView not work [\#3567](https://github.com/danielgindi/Charts/issues/3567) +- the x axis label is not in the right position when I used groupBarChart [\#3564](https://github.com/danielgindi/Charts/issues/3564) +- Bar Charts with only top outline like line chart [\#3562](https://github.com/danielgindi/Charts/issues/3562) +- How to fill the area between two lines on LineChart [\#3561](https://github.com/danielgindi/Charts/issues/3561) +- How to support rose chart? [\#3560](https://github.com/danielgindi/Charts/issues/3560) +- How I can get unselected entry [\#3559](https://github.com/danielgindi/Charts/issues/3559) +- Custom x-axis labels won't show without backing data [\#3557](https://github.com/danielgindi/Charts/issues/3557) +- Cannot build Charts project using Carthage [\#3555](https://github.com/danielgindi/Charts/issues/3555) +- Customizing bar chart [\#3554](https://github.com/danielgindi/Charts/issues/3554) +- Line Chart: Can't display icons unless data labels are also displayed [\#3553](https://github.com/danielgindi/Charts/issues/3553) +- How to enable highlight to some datapoints only when chart is zoomed [\#3552](https://github.com/danielgindi/Charts/issues/3552) +- 关于OC项目引入Charts IPA体积过大的问题 [\#3549](https://github.com/danielgindi/Charts/issues/3549) +- X or Y unit?How to do? [\#3545](https://github.com/danielgindi/Charts/issues/3545) +- Why my chart have line on zero on yAXis [\#3544](https://github.com/danielgindi/Charts/issues/3544) +- Value of type 'EnumeratedSequence\<\[CGPoint\]\>' has no member 'compactMap' [\#3543](https://github.com/danielgindi/Charts/issues/3543) +- Show Axis unit in last label [\#3542](https://github.com/danielgindi/Charts/issues/3542) +- In iOS-Charts how to hide one of Y axis grid lines. [\#3541](https://github.com/danielgindi/Charts/issues/3541) +- Highlighting on a scrollable line graph [\#3539](https://github.com/danielgindi/Charts/issues/3539) +- disable gradient fill Linechart [\#3537](https://github.com/danielgindi/Charts/issues/3537) +- Undefined symbols for architecture - import issues [\#3536](https://github.com/danielgindi/Charts/issues/3536) +- Horizontal Bar Chart Bar Collapsing [\#3535](https://github.com/danielgindi/Charts/issues/3535) +- How to remove space between line chart and top legend [\#3534](https://github.com/danielgindi/Charts/issues/3534) +- Scrolling of bar chart is not working initially. [\#3532](https://github.com/danielgindi/Charts/issues/3532) +- Remove DataSet label [\#3531](https://github.com/danielgindi/Charts/issues/3531) +- HorizontalBarChartView 横向柱状图Y轴问题 [\#3530](https://github.com/danielgindi/Charts/issues/3530) +- 怎么设置柱状图的宽度不变 [\#3529](https://github.com/danielgindi/Charts/issues/3529) +- Is it possible to show the values of a horizontal stacked bar chart centered? [\#3526](https://github.com/danielgindi/Charts/issues/3526) +- how to change LineChartDataSet without strange redraw issues? [\#3525](https://github.com/danielgindi/Charts/issues/3525) +- I want to add image in left side of line graph when we scroll the image is also scroll [\#3521](https://github.com/danielgindi/Charts/issues/3521) +- Fixed label at axis origin [\#3519](https://github.com/danielgindi/Charts/issues/3519) +- Horizontal bar charts labels max out too early [\#3517](https://github.com/danielgindi/Charts/issues/3517) +- multiple PieCharts in on Screen [\#3516](https://github.com/danielgindi/Charts/issues/3516) +- First and Last Bars are not displaying full bars in CombinedChartView [\#3515](https://github.com/danielgindi/Charts/issues/3515) +- Line chart does not render correctly [\#3514](https://github.com/danielgindi/Charts/issues/3514) +- Line chart with LineChartView the line is lower than the minimum values [\#3513](https://github.com/danielgindi/Charts/issues/3513) +- Bar chart is plotting for empty value and Line chart is not appeared in CombinedChartView [\#3511](https://github.com/danielgindi/Charts/issues/3511) +- The shape of graph becomes smaller and smaller in RadarChartGraph [\#3510](https://github.com/danielgindi/Charts/issues/3510) +- not able to display x-axis labels like \(jun, july\) in line chart [\#3509](https://github.com/danielgindi/Charts/issues/3509) +- Move points on LineChart with Pan Gesture [\#3508](https://github.com/danielgindi/Charts/issues/3508) +- 32 bit Device not handling high x-values [\#3507](https://github.com/danielgindi/Charts/issues/3507) +- How do you override the getFormattedValue\(\) method when it doesn't exist? [\#3506](https://github.com/danielgindi/Charts/issues/3506) +- drawBarShadowEnabled is crashing in swift 4 [\#3505](https://github.com/danielgindi/Charts/issues/3505) +- x,y axis and guidelines hide on grah reload [\#3503](https://github.com/danielgindi/Charts/issues/3503) +- 显示float问题 [\#3501](https://github.com/danielgindi/Charts/issues/3501) +- App Crash in release mode not in debug mode [\#3499](https://github.com/danielgindi/Charts/issues/3499) +- Arrow on axis end [\#3498](https://github.com/danielgindi/Charts/issues/3498) +- LineChartView setup "set.mode = LineChartModeCubicBezier",The wave-peak trough of the smooth chart shows no value and deviates from these points [\#3497](https://github.com/danielgindi/Charts/issues/3497) +- Errors when trying to compile a project using Charts [\#3496](https://github.com/danielgindi/Charts/issues/3496) +- Need Help I want to Make 2 lines of X axis label and x axis label background color [\#3495](https://github.com/danielgindi/Charts/issues/3495) +- Getting current xAxis value [\#3494](https://github.com/danielgindi/Charts/issues/3494) +- where to catch the function about marker disappears or appears with dataEntrance [\#3493](https://github.com/danielgindi/Charts/issues/3493) +- Get chart image without rendering chart [\#3492](https://github.com/danielgindi/Charts/issues/3492) +- Cant able to set XAxis Range for custom DateTime formatter [\#3491](https://github.com/danielgindi/Charts/issues/3491) +- How to set the accuracy of data, such as two decimal places, e.g 2.32, 3.21. [\#3490](https://github.com/danielgindi/Charts/issues/3490) +- FFT graphs? [\#3489](https://github.com/danielgindi/Charts/issues/3489) +- Is there a better way to easily add highest and lowest value in candlestick chart [\#3488](https://github.com/danielgindi/Charts/issues/3488) +- Remove piechart center white area [\#3487](https://github.com/danielgindi/Charts/issues/3487) +- xAxis label is croped when using custom valueFormatter [\#3485](https://github.com/danielgindi/Charts/issues/3485) +- Change location of left axis labels [\#3484](https://github.com/danielgindi/Charts/issues/3484) +- How to plot multiple yValue but display selected xValue in xAxis Label? [\#3483](https://github.com/danielgindi/Charts/issues/3483) +- Bubble Charts Choose not jump into the method “chartValueSelected...”? [\#3482](https://github.com/danielgindi/Charts/issues/3482) +- How to plot time value format on x-axis in real time graph [\#3481](https://github.com/danielgindi/Charts/issues/3481) +- How to remove Right side vertical line and values in LineChartView [\#3478](https://github.com/danielgindi/Charts/issues/3478) +- Bar Chart View acting weird \(zooming\) [\#3477](https://github.com/danielgindi/Charts/issues/3477) +- Is their anyway to show legend in rows and columns format? [\#3476](https://github.com/danielgindi/Charts/issues/3476) +- Duplicate Y-axis values while pitching the graph moving up [\#3475](https://github.com/danielgindi/Charts/issues/3475) +- getValuesByTouchPoint / UIView coords to graph coords [\#3474](https://github.com/danielgindi/Charts/issues/3474) +- Pie Chart label not show if its value 0 [\#3473](https://github.com/danielgindi/Charts/issues/3473) +- Build failed [\#3472](https://github.com/danielgindi/Charts/issues/3472) +- What will be the version of pod if I am running on swift 2.3 ? [\#3471](https://github.com/danielgindi/Charts/issues/3471) +- Using SPM results in a "dependency graph is unresolvable" error. [\#3470](https://github.com/danielgindi/Charts/issues/3470) +- Demo is not compiling [\#3469](https://github.com/danielgindi/Charts/issues/3469) +- Question [\#3466](https://github.com/danielgindi/Charts/issues/3466) +- need help [\#3464](https://github.com/danielgindi/Charts/issues/3464) +- bar Chart legend always show one label [\#3462](https://github.com/danielgindi/Charts/issues/3462) +- Monitor rotation angle [\#3461](https://github.com/danielgindi/Charts/issues/3461) +- when clicking chartView,How to prompt multiple markerView [\#3460](https://github.com/danielgindi/Charts/issues/3460) +- The chart will draw incorrectly if LineChart leftAxis.axisMinimum does not start at zero [\#3458](https://github.com/danielgindi/Charts/issues/3458) +- Grouped bar chart plotting wrong !! [\#3457](https://github.com/danielgindi/Charts/issues/3457) +- 为什么我设置X轴不显示 [\#3456](https://github.com/danielgindi/Charts/issues/3456) +- how to set string values on x axis in bar chart? please help [\#3455](https://github.com/danielgindi/Charts/issues/3455) +- Left axis and right axis not same zero line [\#3454](https://github.com/danielgindi/Charts/issues/3454) +- How can make HorizontalBarChart dont start at zero? [\#3453](https://github.com/danielgindi/Charts/issues/3453) +- Can't customise X-axis grid line labels in time value line chart. [\#3452](https://github.com/danielgindi/Charts/issues/3452) +- xAxis gridlines are missing [\#3451](https://github.com/danielgindi/Charts/issues/3451) +- How to add attributed string in Xaxis labels [\#3450](https://github.com/danielgindi/Charts/issues/3450) +- 点击0这一列,所有的柱状图都高亮,可以吗 [\#3449](https://github.com/danielgindi/Charts/issues/3449) +- how to use 'LineChartView' to draw a line between nonzero values? [\#3448](https://github.com/danielgindi/Charts/issues/3448) +- The maximum value of the histogram is not shown. [\#3447](https://github.com/danielgindi/Charts/issues/3447) +- The Y-axis numerical display problem. [\#3446](https://github.com/danielgindi/Charts/issues/3446) +- Is it possible to show x-Axis gridlines when there's only one ChartDataEntry? [\#3444](https://github.com/danielgindi/Charts/issues/3444) +- Chart callback events [\#3443](https://github.com/danielgindi/Charts/issues/3443) +- Help needed with Grouped Horizontal Bar Chart [\#3442](https://github.com/danielgindi/Charts/issues/3442) +- Candlestick doesn't work when x does not start at 0 [\#3441](https://github.com/danielgindi/Charts/issues/3441) +- Is there a callback method? [\#3439](https://github.com/danielgindi/Charts/issues/3439) +- oc项目集成Charts,上架打包失败,提示ERROR ITMS-90171: "Invalid Bundle Structure - The binary file '时间炼.app/Frameworks/Charts.framework/Charts' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure."。新手,求解答!Thanks [\#3438](https://github.com/danielgindi/Charts/issues/3438) +- Axis label alignment with labelRotationAngle [\#3437](https://github.com/danielgindi/Charts/issues/3437) +- Show grid with axis deactivated [\#3436](https://github.com/danielgindi/Charts/issues/3436) +- Error: cannot use instance member '\_viewPortHandler' within property initializer; property initializers run before 'self' is available [\#3434](https://github.com/danielgindi/Charts/issues/3434) +- remove labels [\#3433](https://github.com/danielgindi/Charts/issues/3433) +- How to set the number of lines for the label of xAxis of HorizontalBarChartView ? [\#3431](https://github.com/danielgindi/Charts/issues/3431) +- xAxis labelText too long, it can not draw complete. [\#3430](https://github.com/danielgindi/Charts/issues/3430) +- Weird crash [\#3427](https://github.com/danielgindi/Charts/issues/3427) +- Why does the default value of the Y label take the decimal point? [\#3426](https://github.com/danielgindi/Charts/issues/3426) +- Why won't the viewport move to the last X value of my line chart? [\#3425](https://github.com/danielgindi/Charts/issues/3425) +- How to disable highlight for some specific values [\#3423](https://github.com/danielgindi/Charts/issues/3423) +- IAxisValueFormatter Error: Index out of range [\#3422](https://github.com/danielgindi/Charts/issues/3422) +- can we animate SelectionShift when selecting a segment of pie chart? [\#3420](https://github.com/danielgindi/Charts/issues/3420) +- Y-axis minimum scale deviation problem. [\#3419](https://github.com/danielgindi/Charts/issues/3419) +- How do you set the scale of the Y-axis? [\#3418](https://github.com/danielgindi/Charts/issues/3418) +- BarLineChartViewBase doubleTapGestureRecognized [\#3417](https://github.com/danielgindi/Charts/issues/3417) +- Remove the box from the pie chart. [\#3416](https://github.com/danielgindi/Charts/issues/3416) +- Unable to set transparent color or clear color to the graphs background. [\#3414](https://github.com/danielgindi/Charts/issues/3414) +- BarChartView has no TouchUpInside event, only TouchDown event. [\#3411](https://github.com/danielgindi/Charts/issues/3411) +- YAxis,the integer bit is missing, showing.0 or.00 [\#3410](https://github.com/danielgindi/Charts/issues/3410) +- touchesEnded can't be called in chart view? [\#3409](https://github.com/danielgindi/Charts/issues/3409) +- Is it possible to show date values in the Stacked BarChart? [\#3408](https://github.com/danielgindi/Charts/issues/3408) +- Passing STRING values to X-Axis currently the SetDataCount is accepting only INT and Double data types [\#3407](https://github.com/danielgindi/Charts/issues/3407) +- compactMap build error [\#3405](https://github.com/danielgindi/Charts/issues/3405) +- Marker in CombinedChart is displayed incorrectly. [\#3404](https://github.com/danielgindi/Charts/issues/3404) +- I need to customize the column chart [\#3401](https://github.com/danielgindi/Charts/issues/3401) +- YAxis show the value .0 or .00 [\#3400](https://github.com/danielgindi/Charts/issues/3400) +- How to do BarChart \(grouped DataSets\)\(OC\)? [\#3399](https://github.com/danielgindi/Charts/issues/3399) +- Can't build success with xcode toolchains swift 4.0.3 release [\#3398](https://github.com/danielgindi/Charts/issues/3398) +- pod not install in xcode 9.3 version [\#3397](https://github.com/danielgindi/Charts/issues/3397) +- Lag during scroll [\#3395](https://github.com/danielgindi/Charts/issues/3395) +- Hide percents on PieChartDiagram when it's so small [\#3394](https://github.com/danielgindi/Charts/issues/3394) +- Value of type 'BarChartDataEntries' has no member 'unit' [\#3393](https://github.com/danielgindi/Charts/issues/3393) +- BarChart 1st bar offset [\#3392](https://github.com/danielgindi/Charts/issues/3392) +- Open up Access Modifiers? [\#3391](https://github.com/danielgindi/Charts/issues/3391) +- ld: warning: directory not found for option '-F/Users/hansenpen/Library/Developer/Xcode/DerivedData/CS\_PROJECT\_-\_ALPHA-hglwyidqwcstjvejzxikmednefgv/Build/Products/Debug-iphonesimulator/Charts' ld: framework not found Charts clang: error: linker command failed with exit code 1 \(use -v to see invocation\) [\#3390](https://github.com/danielgindi/Charts/issues/3390) +- How to install charts Framework using Xcode 9.1 [\#3388](https://github.com/danielgindi/Charts/issues/3388) +- Unable to compile swift 3.2 code from xcode 9.3. I am using 3.1.1 version of charts. [\#3387](https://github.com/danielgindi/Charts/issues/3387) +- why there is flexible space between the BarChatView and the xAxis ? sometimes the space are nil but sometimes the space exist . when it happens the xAxis will draw rect inside the PilaView . it doesn't connected with the XAxisLabelPosition attribute . i cann't figured it out [\#3386](https://github.com/danielgindi/Charts/issues/3386) +- Error building project [\#3385](https://github.com/danielgindi/Charts/issues/3385) +- missing property in latest LineChartView [\#3383](https://github.com/danielgindi/Charts/issues/3383) +- minOffset not working [\#3382](https://github.com/danielgindi/Charts/issues/3382) +- Display Real time data like pulseRate. [\#3381](https://github.com/danielgindi/Charts/issues/3381) +- Grouped bar chart shows up as stacked bar chart after migration. [\#3380](https://github.com/danielgindi/Charts/issues/3380) +- Candle stick chart cds.setBarSpace\(\) not working [\#3379](https://github.com/danielgindi/Charts/issues/3379) +- Line chart fill color goes above/below zeroline [\#3377](https://github.com/danielgindi/Charts/issues/3377) +- Charts Pod not working with Xcode 9.3 \(Swift 4.1\) [\#3376](https://github.com/danielgindi/Charts/issues/3376) +- Can any one know how to draw this charts [\#3375](https://github.com/danielgindi/Charts/issues/3375) +- Compile error on newest ChartsDemo-iOS project [\#3373](https://github.com/danielgindi/Charts/issues/3373) +- ChartIndexAxisValueFormatter Not working in line charts [\#3371](https://github.com/danielgindi/Charts/issues/3371) +- Line Graph xValue [\#3367](https://github.com/danielgindi/Charts/issues/3367) +- xAxis labels are not aligned with grouped bar, when data is more [\#3364](https://github.com/danielgindi/Charts/issues/3364) +- Select the data point programmatically and the highLight is NAN [\#3363](https://github.com/danielgindi/Charts/issues/3363) +- Layout issue with chart legend [\#3359](https://github.com/danielgindi/Charts/issues/3359) +- Is it possible to draw the line on top of a custom XAxisRenderer? [\#3348](https://github.com/danielgindi/Charts/issues/3348) +- How to set x-axis labels with selected round with color. [\#3345](https://github.com/danielgindi/Charts/issues/3345) +- How to hide the grid background on some bar [\#3342](https://github.com/danielgindi/Charts/issues/3342) +- Space between axis line and axis label [\#3336](https://github.com/danielgindi/Charts/issues/3336) +- Can't manage to align plots with x axis values [\#3332](https://github.com/danielgindi/Charts/issues/3332) +- Show the last x axis label on bar chart [\#3324](https://github.com/danielgindi/Charts/issues/3324) +- HorizontalBarChartView display partial data [\#3320](https://github.com/danielgindi/Charts/issues/3320) +- 如何在滑动代理中获取当前中心位置所对应的数据源的索引 [\#3318](https://github.com/danielgindi/Charts/issues/3318) +- Visible max and min Y Values [\#2600](https://github.com/danielgindi/Charts/issues/2600) +- Invert xAxis label [\#2504](https://github.com/danielgindi/Charts/issues/2504) +- @junito1209 please explain what are you doing on Charts wiki page [\#2261](https://github.com/danielgindi/Charts/issues/2261) +- Crash Observed when AxisRenderer interval is becoming NaN [\#2168](https://github.com/danielgindi/Charts/issues/2168) +- Problem selecting bubbles on the same xIndex [\#2060](https://github.com/danielgindi/Charts/issues/2060) + +**Merged pull requests:** + +- Add Swift version 4.1 to podspec [\#3608](https://github.com/danielgindi/Charts/pull/3608) ([larryonoff](https://github.com/larryonoff)) +- update barRect.size.height calculation [\#3587](https://github.com/danielgindi/Charts/pull/3587) ([potato04](https://github.com/potato04)) +- Add label colors to legend entries [\#3558](https://github.com/danielgindi/Charts/pull/3558) ([petester42](https://github.com/petester42)) +- Support inlune bubble viz selection [\#3548](https://github.com/danielgindi/Charts/pull/3548) ([chuynadamas](https://github.com/chuynadamas)) +- fix the error title for demo [\#3528](https://github.com/danielgindi/Charts/pull/3528) ([yangasahi](https://github.com/yangasahi)) +- Changes for Swift 4.2, Xcode 10 and iOS 12 [\#3522](https://github.com/danielgindi/Charts/pull/3522) ([jlcanale](https://github.com/jlcanale)) +- Accessibility Support for \(most\) Chart types [\#3520](https://github.com/danielgindi/Charts/pull/3520) ([mathewa6](https://github.com/mathewa6)) +- Changed comment that referenced getFormattedValue\(\) method in IValueFormatter [\#3518](https://github.com/danielgindi/Charts/pull/3518) ([JCMcLovin](https://github.com/JCMcLovin)) +- Fix merge conflicts in \#3218 [\#3500](https://github.com/danielgindi/Charts/pull/3500) ([petester42](https://github.com/petester42)) +- Make legendRenderer property public in order to be externally customizable [\#3445](https://github.com/danielgindi/Charts/pull/3445) ([nagykatalin](https://github.com/nagykatalin)) +- Fix broken demo link in readme [\#3440](https://github.com/danielgindi/Charts/pull/3440) ([robert-cronin](https://github.com/robert-cronin)) +- Added clamping function for `Comparable` [\#3435](https://github.com/danielgindi/Charts/pull/3435) ([jjatie](https://github.com/jjatie)) +- Fix CocoaPods compilation [\#3432](https://github.com/danielgindi/Charts/pull/3432) ([larryonoff](https://github.com/larryonoff)) +- update candle chart view options in demo project [\#3424](https://github.com/danielgindi/Charts/pull/3424) ([cuong1112035](https://github.com/cuong1112035)) +- Add Objective-c compatible for turning off drag in X and Y Axis separately [\#3421](https://github.com/danielgindi/Charts/pull/3421) ([lennonhe](https://github.com/lennonhe)) +- Added gradient line drawing to LineChartRenderer. based on PR \#3142 [\#3415](https://github.com/danielgindi/Charts/pull/3415) ([larryonoff](https://github.com/larryonoff)) +- Add more render options for y axis labels [\#3406](https://github.com/danielgindi/Charts/pull/3406) ([alexrepty](https://github.com/alexrepty)) +- Refactored ChartData [\#3169](https://github.com/danielgindi/Charts/pull/3169) ([jjatie](https://github.com/jjatie)) +- Dataset logic cleanup [\#3001](https://github.com/danielgindi/Charts/pull/3001) ([jjatie](https://github.com/jjatie)) +- Added value text rotation [\#2200](https://github.com/danielgindi/Charts/pull/2200) ([chinh-tran](https://github.com/chinh-tran)) + +## [v3.1.1](https://github.com/danielgindi/Charts/tree/v3.1.1) (2018-04-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.1.1...v3.1.1) + +## [3.1.1](https://github.com/danielgindi/Charts/tree/3.1.1) (2018-04-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.1.0...3.1.1) + +**Fixed bugs:** + +- ChartsDemo-Swift crashes [\#3327](https://github.com/danielgindi/Charts/issues/3327) + +**Closed issues:** + +- Why does yVals start with a negative number when the data is empty? [\#3374](https://github.com/danielgindi/Charts/issues/3374) +- Compile Error [\#3372](https://github.com/danielgindi/Charts/issues/3372) +- Y Axis need to add Time slots for current day [\#3368](https://github.com/danielgindi/Charts/issues/3368) +- inconsistent include of UIKit vs AppKit [\#3362](https://github.com/danielgindi/Charts/issues/3362) +- Crash Issue in BarChartData [\#3361](https://github.com/danielgindi/Charts/issues/3361) +- How can we format the LABEL used for values? [\#3354](https://github.com/danielgindi/Charts/issues/3354) +- Remove value labels padding [\#3350](https://github.com/danielgindi/Charts/issues/3350) +- Does Charts support real-time drawing [\#3344](https://github.com/danielgindi/Charts/issues/3344) +- Constant for Bar width and space [\#3343](https://github.com/danielgindi/Charts/issues/3343) +- Bar Graph groupBars function issue [\#1966](https://github.com/danielgindi/Charts/issues/1966) +- bar chart from dates [\#1963](https://github.com/danielgindi/Charts/issues/1963) +- A crash of CombinedChartView,when touch on the chart view\(chas\) [\#1957](https://github.com/danielgindi/Charts/issues/1957) +- Graph doesn't display on older iPads [\#1954](https://github.com/danielgindi/Charts/issues/1954) +- Regarding deprecated xValues [\#1947](https://github.com/danielgindi/Charts/issues/1947) +- Charts being overlaid inside UICollectionView using dequeueReusableCell [\#1943](https://github.com/danielgindi/Charts/issues/1943) +- We are unable to split the label in two lines. [\#1941](https://github.com/danielgindi/Charts/issues/1941) +- Make releases so they follow the Semantic Versioning \(SemVer\) [\#1930](https://github.com/danielgindi/Charts/issues/1930) +- Marker Position [\#1876](https://github.com/danielgindi/Charts/issues/1876) +- Charts 3.0 unable to draw discontinuous line chart [\#1866](https://github.com/danielgindi/Charts/issues/1866) +- Radar charts custom labels [\#1840](https://github.com/danielgindi/Charts/issues/1840) +- Unable to subclass [\#1838](https://github.com/danielgindi/Charts/issues/1838) +- offset goes wrong when using mutiple bar chart in combined chart [\#1813](https://github.com/danielgindi/Charts/issues/1813) +- Histogram Example? [\#1792](https://github.com/danielgindi/Charts/issues/1792) +- Sunburst Chart [\#1715](https://github.com/danielgindi/Charts/issues/1715) +- Line chart with preview [\#1520](https://github.com/danielgindi/Charts/issues/1520) +- Get scroll position of dragable line chart [\#1272](https://github.com/danielgindi/Charts/issues/1272) +- Trend line in scatter chart? [\#1263](https://github.com/danielgindi/Charts/issues/1263) +- Can we use custom image instead of Circle in line chart? [\#1206](https://github.com/danielgindi/Charts/issues/1206) +- Legend with NSAttributedString and multiple lines on Vertical [\#1193](https://github.com/danielgindi/Charts/issues/1193) +- Trim the legend view [\#1192](https://github.com/danielgindi/Charts/issues/1192) +- Chart auto min/max does not take into account second line [\#1136](https://github.com/danielgindi/Charts/issues/1136) +- Add different colorHoleColor for different datapoints in a LineChart iOS Charts [\#1104](https://github.com/danielgindi/Charts/issues/1104) +- How to remove marker programatically [\#1097](https://github.com/danielgindi/Charts/issues/1097) +- Overlapping issues in x and y axis values [\#1048](https://github.com/danielgindi/Charts/issues/1048) +- Enhancement: Horizontal Combined Chart [\#1041](https://github.com/danielgindi/Charts/issues/1041) +- Enhancement: Linked x-axis or stacked y-axis. [\#1022](https://github.com/danielgindi/Charts/issues/1022) +- Scale or zoom to particular axis or point in Combined chart view [\#993](https://github.com/danielgindi/Charts/issues/993) +- Max Value Y - Axis = 1 , How to set Y-Axis increment Y- Value ? [\#989](https://github.com/danielgindi/Charts/issues/989) +- Drawing value for the WholeStack only [\#926](https://github.com/danielgindi/Charts/issues/926) +- Pie chart Y values overlap [\#779](https://github.com/danielgindi/Charts/issues/779) +- Swift Package Manager [\#753](https://github.com/danielgindi/Charts/issues/753) +- Stacked bar chart with different number of rects [\#744](https://github.com/danielgindi/Charts/issues/744) +- The label value position with the same yAxis and different value. [\#724](https://github.com/danielgindi/Charts/issues/724) +- Minimum / maximum scale causes the chart to slide sideways when trying to pinch zoom further [\#437](https://github.com/danielgindi/Charts/issues/437) +- Top and bottom grid line diverging widths [\#411](https://github.com/danielgindi/Charts/issues/411) + +**Merged pull requests:** + +- Swift 4.1 [\#3370](https://github.com/danielgindi/Charts/pull/3370) ([jjatie](https://github.com/jjatie)) +- Update ILineRadarChartDataSet.swift [\#3366](https://github.com/danielgindi/Charts/pull/3366) ([Ewg777](https://github.com/Ewg777)) +- Add option to disable clipping data to contentRect [\#3360](https://github.com/danielgindi/Charts/pull/3360) ([wtmoose](https://github.com/wtmoose)) + +## [v3.1.0](https://github.com/danielgindi/Charts/tree/v3.1.0) (2018-03-22) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.1.0...v3.1.0) + +## [3.1.0](https://github.com/danielgindi/Charts/tree/3.1.0) (2018-03-22) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.5...3.1.0) + +**Fixed bugs:** + +- Bug in ZoomViewJob? [\#3299](https://github.com/danielgindi/Charts/issues/3299) +- BarChartView bug if set barWidth was 1.0? [\#3213](https://github.com/danielgindi/Charts/issues/3213) +- Scatter circle disappear when chart scaled [\#3185](https://github.com/danielgindi/Charts/issues/3185) +- PieChart `highlightValue\(x:y:dataSetIndex:\)` should provide error for dataSetIndex \> 1 [\#3146](https://github.com/danielgindi/Charts/issues/3146) +- PieChart size is extremely small in a UITableViewCell [\#3108](https://github.com/danielgindi/Charts/issues/3108) +- Handling critical Y values with autoScaleMinMaxEnabled [\#2053](https://github.com/danielgindi/Charts/issues/2053) +- Charts 3.0 - Error: this application, or a library it uses, has passed an invalid numeric value \(NaN, or not-a-number\) to CoreGraphics API and this value is being ignored [\#1626](https://github.com/danielgindi/Charts/issues/1626) + +**Closed issues:** + +- Programatically passed renderer is corrupting animations [\#3349](https://github.com/danielgindi/Charts/issues/3349) +- How to show Integer value [\#3346](https://github.com/danielgindi/Charts/issues/3346) +- Does not build on Xcode 8.3.3 & Swift 3 [\#3341](https://github.com/danielgindi/Charts/issues/3341) +- how to use pod 'Charts' into objective c project , i create header file to use swift , but what should i do after create header file ? [\#3338](https://github.com/danielgindi/Charts/issues/3338) +- How to show all labels in xAxis ? [\#3337](https://github.com/danielgindi/Charts/issues/3337) +- How to set the interval in X axis label [\#3335](https://github.com/danielgindi/Charts/issues/3335) +- Line chart with solid and dashed line [\#3334](https://github.com/danielgindi/Charts/issues/3334) +- Code signing is required for product type 'Application' in SDK 'iOS 11.2' [\#3333](https://github.com/danielgindi/Charts/issues/3333) +- My project within framework target and pod Charts into my framework target can't load Charts framework [\#3328](https://github.com/danielgindi/Charts/issues/3328) +- Swift 4.1 compilation warnings [\#3323](https://github.com/danielgindi/Charts/issues/3323) +- Two Horizontal grid lines always appear above Base Axis line [\#3322](https://github.com/danielgindi/Charts/issues/3322) +- BalloonMarker support swift 3 ? [\#3321](https://github.com/danielgindi/Charts/issues/3321) +- Unable to get horizontal scrolling in bar chart [\#3319](https://github.com/danielgindi/Charts/issues/3319) +- Horizontal Bar Chart xAxis formatted label textColor [\#3317](https://github.com/danielgindi/Charts/issues/3317) +- Wrong dataSetIndex in stringForValue delegate method [\#3314](https://github.com/danielgindi/Charts/issues/3314) +- Limit line in the left and right drag or zoom can be fixed [\#3313](https://github.com/danielgindi/Charts/issues/3313) +- Save picture crash in demos on iOS 11+ [\#3311](https://github.com/danielgindi/Charts/issues/3311) +- How to display reload text in iOS-Charts? [\#3310](https://github.com/danielgindi/Charts/issues/3310) +- Can't show Label text in XAxis [\#3308](https://github.com/danielgindi/Charts/issues/3308) +- Straight lines [\#3306](https://github.com/danielgindi/Charts/issues/3306) +- Values on X axis issue [\#3304](https://github.com/danielgindi/Charts/issues/3304) +- when setInverted\(true\) in the leftAxis of CombinedChart, the candleStickData doesnot show ? [\#3303](https://github.com/danielgindi/Charts/issues/3303) +- HorizontalBarChart X axe labels duplicated [\#3300](https://github.com/danielgindi/Charts/issues/3300) +- how can i change label color? [\#3298](https://github.com/danielgindi/Charts/issues/3298) +- value granularity [\#3296](https://github.com/danielgindi/Charts/issues/3296) +- Better way to manage Stacked Bar Chart Value labels? [\#3295](https://github.com/danielgindi/Charts/issues/3295) +- Remove Y axis border line in Line Graph [\#3294](https://github.com/danielgindi/Charts/issues/3294) +- XAxisRenderer not called [\#3293](https://github.com/danielgindi/Charts/issues/3293) +- How to display string value on xAxis label in line chart [\#3292](https://github.com/danielgindi/Charts/issues/3292) +- how to change the color of text that displayed below the chart ios swift 3 [\#3288](https://github.com/danielgindi/Charts/issues/3288) +- color in BalloonMarker is never used [\#3287](https://github.com/danielgindi/Charts/issues/3287) +- Question: LineChart variable line thickness? [\#3285](https://github.com/danielgindi/Charts/issues/3285) +- Modify selected slice [\#3284](https://github.com/danielgindi/Charts/issues/3284) +- Put shadow under slice [\#3283](https://github.com/danielgindi/Charts/issues/3283) +- How can I take selected value index in Pie Chart [\#3282](https://github.com/danielgindi/Charts/issues/3282) +- hide other label when one slice of pie chart was selected [\#3281](https://github.com/danielgindi/Charts/issues/3281) +- How to show custom x and y axis details in LineChart in objective c ??? [\#3280](https://github.com/danielgindi/Charts/issues/3280) +- I need to put dates from an array on xAxis [\#3277](https://github.com/danielgindi/Charts/issues/3277) +- Is there a way to round the corners of the BalloonMarker? [\#3276](https://github.com/danielgindi/Charts/issues/3276) +- Set values not showing until chart is zoomed [\#3275](https://github.com/danielgindi/Charts/issues/3275) +- How to add gap between chart and legend? [\#3274](https://github.com/danielgindi/Charts/issues/3274) +- LineChart : How to show the grid in right axis [\#3271](https://github.com/danielgindi/Charts/issues/3271) +- How to custom axis' label in horizontal bar chart [\#3270](https://github.com/danielgindi/Charts/issues/3270) +- LineChart: How to fix space between point on xAxis [\#3269](https://github.com/danielgindi/Charts/issues/3269) +- Line Chart Issue in CombinedChartView [\#3268](https://github.com/danielgindi/Charts/issues/3268) +- LineChartRenderer - drawHighlighted:context:indices: [\#3267](https://github.com/danielgindi/Charts/issues/3267) +- Scatter Bar Char - Plots on axis \(0,0\) partially visible [\#3266](https://github.com/danielgindi/Charts/issues/3266) +- is it support the ios 7??? [\#3263](https://github.com/danielgindi/Charts/issues/3263) +- Combined chart for candlestick + bar [\#3262](https://github.com/danielgindi/Charts/issues/3262) +- setScatterShape applied to Legend also [\#3261](https://github.com/danielgindi/Charts/issues/3261) +- ChartDataSet min and max values not recalculated when calling clear\(\) [\#3260](https://github.com/danielgindi/Charts/issues/3260) +- How to realize the Line and the bar Chart in the same one Chart? [\#3259](https://github.com/danielgindi/Charts/issues/3259) +- '\_xBounds' and other variables inaccessible due to 'internal' protection level workaround [\#3258](https://github.com/danielgindi/Charts/issues/3258) +- //view\_line\_graph.centerViewTo\(xValue: Double\(dataEntries\[pos\].x\) , yValue: Double\(dataEntries\[pos\].y\), axis: YAxis.AxisDependency.right\) [\#3257](https://github.com/danielgindi/Charts/issues/3257) +- dyld: Library not loaded: @rpath/Charts.framework/Charts [\#3250](https://github.com/danielgindi/Charts/issues/3250) +- X Axis disapeared [\#3249](https://github.com/danielgindi/Charts/issues/3249) +- Save zoom state [\#3248](https://github.com/danielgindi/Charts/issues/3248) +- leftAxis label bug? [\#3246](https://github.com/danielgindi/Charts/issues/3246) +- x-axis label jumps when zoomed in and side scrolling. [\#3245](https://github.com/danielgindi/Charts/issues/3245) +- avoidFirstLastClippingEnabled not working and set last circleColor a different value [\#3244](https://github.com/danielgindi/Charts/issues/3244) +- Got totally 50 errors after install CocoaPods ..! I am using Swift 4.0 [\#3243](https://github.com/danielgindi/Charts/issues/3243) +- Error in Library When added pod file [\#3242](https://github.com/danielgindi/Charts/issues/3242) +- How to do multiple data on x axis? [\#3241](https://github.com/danielgindi/Charts/issues/3241) +- Missing entries in PieChartDataEntry legends. [\#3240](https://github.com/danielgindi/Charts/issues/3240) +- Candle Stick does not show [\#3239](https://github.com/danielgindi/Charts/issues/3239) +- How i give LineChart Entry using x index and y value in Charts '3.0.4'? help wanted [\#3238](https://github.com/danielgindi/Charts/issues/3238) +- ChartDataEntry with icons shows scatter shape at same time [\#3237](https://github.com/danielgindi/Charts/issues/3237) +- HorizontalBarChart - Right axis label starts with the highest value up to the same value [\#3235](https://github.com/danielgindi/Charts/issues/3235) +- Carthage Charts [\#3234](https://github.com/danielgindi/Charts/issues/3234) +- 3.0.5 Bar chart xAxis valueFormatter regression - no data points shown. [\#3233](https://github.com/danielgindi/Charts/issues/3233) +- Pin the graph on one side while zooming [\#3232](https://github.com/danielgindi/Charts/issues/3232) +- yAxisMaximum auto-increment RadarChartView [\#3231](https://github.com/danielgindi/Charts/issues/3231) +- Compile issue after install pod 'Chart' [\#3230](https://github.com/danielgindi/Charts/issues/3230) +- corner line chart [\#3227](https://github.com/danielgindi/Charts/issues/3227) +- Make specific pieChart segment stick out and go back to normal size, animated [\#3224](https://github.com/danielgindi/Charts/issues/3224) +- Dash line and highlighted top value [\#3221](https://github.com/danielgindi/Charts/issues/3221) +- Why is the xAxis Value Formater so often called? [\#3220](https://github.com/danielgindi/Charts/issues/3220) +- How easy is to add some technical indicators? [\#3219](https://github.com/danielgindi/Charts/issues/3219) +- How to set X-Axis data to bottom of chart with strings data? [\#3212](https://github.com/danielgindi/Charts/issues/3212) +- how to drag the LineChartView [\#3211](https://github.com/danielgindi/Charts/issues/3211) +- Release 3.0.5 contains version number inconsistencies [\#3210](https://github.com/danielgindi/Charts/issues/3210) +- Unable to Hide PieChart Legends. [\#3209](https://github.com/danielgindi/Charts/issues/3209) +- Recent release with my Swift3 project [\#3208](https://github.com/danielgindi/Charts/issues/3208) +- Cannot set double value in Combined chart line chart. [\#3205](https://github.com/danielgindi/Charts/issues/3205) +- Bar charts with different column widths [\#3204](https://github.com/danielgindi/Charts/issues/3204) +- Labels on x-axes not linked to chart data points [\#3203](https://github.com/danielgindi/Charts/issues/3203) +- Remark: The AppCoda tutorial is outdated [\#3196](https://github.com/danielgindi/Charts/issues/3196) +- Unable to set strings as values in x axis of linechart [\#3195](https://github.com/danielgindi/Charts/issues/3195) +- drag event issie [\#3194](https://github.com/danielgindi/Charts/issues/3194) +- Custom XAxisRenderer labels are shifting around when scrolling [\#3193](https://github.com/danielgindi/Charts/issues/3193) +- How to asynchronous drawings LineChart? [\#3192](https://github.com/danielgindi/Charts/issues/3192) +- How do I listen to the left or right to the end of the event when I zoom in on the lineCharts? [\#3184](https://github.com/danielgindi/Charts/issues/3184) +- Want to delete color set beside legend label [\#3180](https://github.com/danielgindi/Charts/issues/3180) +- How to show/hide Stacked Bar Chart yValue? [\#3175](https://github.com/danielgindi/Charts/issues/3175) +- Readme needs to be updated for 3.0.5 [\#3170](https://github.com/danielgindi/Charts/issues/3170) +- Add Axis description to Charts Framework [\#3168](https://github.com/danielgindi/Charts/issues/3168) +- ChartViewDelegate not called when barChart is out of screen [\#3165](https://github.com/danielgindi/Charts/issues/3165) +- dash line \(separators\) in between in bars. [\#3163](https://github.com/danielgindi/Charts/issues/3163) +- StackedBarChart Value on middle of each stacked bar chart [\#3162](https://github.com/danielgindi/Charts/issues/3162) +- ChartLimitLine Label Position [\#3161](https://github.com/danielgindi/Charts/issues/3161) +- bar chat [\#3158](https://github.com/danielgindi/Charts/issues/3158) +- Bar coloring [\#3157](https://github.com/danielgindi/Charts/issues/3157) +- HorizontalBarChart doesn't display bar draw values when bar is partially off ViewPort [\#3155](https://github.com/danielgindi/Charts/issues/3155) +- X-Axis Labels not showing [\#3154](https://github.com/danielgindi/Charts/issues/3154) +- How to make highlight scrolling on chart not trigger parent scrollView? \[help\] [\#3153](https://github.com/danielgindi/Charts/issues/3153) +- How to fill the color like the marked part of this following picture? Thanks a lot! [\#3144](https://github.com/danielgindi/Charts/issues/3144) +- finger leaves the chart area [\#3128](https://github.com/danielgindi/Charts/issues/3128) +- Technical Support in Github [\#3126](https://github.com/danielgindi/Charts/issues/3126) +- Plotting the bar from top to bottom \(in reverse manner\) [\#3125](https://github.com/danielgindi/Charts/issues/3125) +- pieChart Data name overlap [\#3109](https://github.com/danielgindi/Charts/issues/3109) +- LineChart with different colors based on values. [\#3107](https://github.com/danielgindi/Charts/issues/3107) +- AxisBase Value Formatter [\#3105](https://github.com/danielgindi/Charts/issues/3105) +- Multiple charts in same view [\#3103](https://github.com/danielgindi/Charts/issues/3103) +- Draw dotted x-axis timeline [\#3102](https://github.com/danielgindi/Charts/issues/3102) +- PieChart value labels are overlaping when values are between 0 to 9 [\#2948](https://github.com/danielgindi/Charts/issues/2948) +- xValues on X-Axis for non-continuous dates [\#2398](https://github.com/danielgindi/Charts/issues/2398) +- y-labels position is wrong,when i set autoScaleMinMaxEnabled = YES [\#2379](https://github.com/danielgindi/Charts/issues/2379) +- Distance between chart legend and the horizontal bar chart is to big in case of rotated labels [\#2138](https://github.com/danielgindi/Charts/issues/2138) +- How to set LabelCount bigger than 25 in HorizatalBarView [\#2085](https://github.com/danielgindi/Charts/issues/2085) + +**Merged pull requests:** + +- bump to 3.1 release [\#3357](https://github.com/danielgindi/Charts/pull/3357) ([liuxuan30](https://github.com/liuxuan30)) +- Refactors -\[tableView:cellForRowAtIndexPath:\] [\#3326](https://github.com/danielgindi/Charts/pull/3326) ([valeriyvan](https://github.com/valeriyvan)) +- minor bug fix in favor of 3.1 release [\#3312](https://github.com/danielgindi/Charts/pull/3312) ([liuxuan30](https://github.com/liuxuan30)) +- add pie chart unit tests [\#3297](https://github.com/danielgindi/Charts/pull/3297) ([liuxuan30](https://github.com/liuxuan30)) +- Align Objc and Swift demos balloon marker [\#3291](https://github.com/danielgindi/Charts/pull/3291) ([liuxuan30](https://github.com/liuxuan30)) +- for \#3146. add a warning message if pie chart has more than one data set [\#3286](https://github.com/danielgindi/Charts/pull/3286) ([liuxuan30](https://github.com/liuxuan30)) +- Issue templates [\#3278](https://github.com/danielgindi/Charts/pull/3278) ([jjatie](https://github.com/jjatie)) +- Min and Max reset when clearing ChartDataSet \(Fixes \#3260\) [\#3265](https://github.com/danielgindi/Charts/pull/3265) ([carlo-](https://github.com/carlo-)) +- Restored old performance in ChartDataSet [\#3216](https://github.com/danielgindi/Charts/pull/3216) ([jjatie](https://github.com/jjatie)) +- Support other bundle than main MarkerView.viewFromXib\(\) [\#3215](https://github.com/danielgindi/Charts/pull/3215) ([charlymr](https://github.com/charlymr)) +- BubbleChart uses correct colour for index now. [\#3202](https://github.com/danielgindi/Charts/pull/3202) ([jjatie](https://github.com/jjatie)) +- Added custom text alignment for noData [\#3199](https://github.com/danielgindi/Charts/pull/3199) ([jjatie](https://github.com/jjatie)) +- Call setNeedsDisplay\(\) to trigger render noDataText [\#3198](https://github.com/danielgindi/Charts/pull/3198) ([liuxuan30](https://github.com/liuxuan30)) +- Updated README for 3.0.5 [\#3183](https://github.com/danielgindi/Charts/pull/3183) ([jjatie](https://github.com/jjatie)) +- Balloon Marker indicates position of data [\#3181](https://github.com/danielgindi/Charts/pull/3181) ([jjatie](https://github.com/jjatie)) +- Fixed a duplicated assignment compared with obj-c code. [\#3179](https://github.com/danielgindi/Charts/pull/3179) ([canapio](https://github.com/canapio)) +- Fixed X-Axis Labels Not Showing \(\#3154\) [\#3174](https://github.com/danielgindi/Charts/pull/3174) ([leedsalex](https://github.com/leedsalex)) +- fix programatical unhighlighting for BarCharView [\#3159](https://github.com/danielgindi/Charts/pull/3159) ([jekahy](https://github.com/jekahy)) +- Removed optionality from valueFormatter where appropriate [\#3106](https://github.com/danielgindi/Charts/pull/3106) ([jjatie](https://github.com/jjatie)) +- Moved the default value formatter [\#3088](https://github.com/danielgindi/Charts/pull/3088) ([jjatie](https://github.com/jjatie)) +- Utils Cleanup [\#3054](https://github.com/danielgindi/Charts/pull/3054) ([jjatie](https://github.com/jjatie)) +- weak -\> unowned [\#3039](https://github.com/danielgindi/Charts/pull/3039) ([jjatie](https://github.com/jjatie)) +- Fix BalloonMarker's text position calculation, consider insets [\#3035](https://github.com/danielgindi/Charts/pull/3035) ([yangcaimu](https://github.com/yangcaimu)) +- Chartdata collection refactor [\#3024](https://github.com/danielgindi/Charts/pull/3024) ([jjatie](https://github.com/jjatie)) +- Chartdata collection conformance [\#3023](https://github.com/danielgindi/Charts/pull/3023) ([jjatie](https://github.com/jjatie)) +- Give the users customizable axis label limits \(Fixes \#2085\) [\#2894](https://github.com/danielgindi/Charts/pull/2894) ([igzrobertoestrada](https://github.com/igzrobertoestrada)) +- For \#2840. add dataIndex parameter in `highlightValue\(\)` calls [\#2852](https://github.com/danielgindi/Charts/pull/2852) ([liuxuan30](https://github.com/liuxuan30)) +- fix \#2356 crash if floor\(10.0 \* intervalMagnitude\) is 0.0 [\#2377](https://github.com/danielgindi/Charts/pull/2377) ([liuxuan30](https://github.com/liuxuan30)) +- Fixes the distance issue between the legend and the horizontal bar chart \(Fixes \#2138\) [\#2214](https://github.com/danielgindi/Charts/pull/2214) ([SvenMuc](https://github.com/SvenMuc)) + +## [3.0.5](https://github.com/danielgindi/Charts/tree/3.0.5) (2018-01-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.5...3.0.5) + +## [v3.0.5](https://github.com/danielgindi/Charts/tree/v3.0.5) (2018-01-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.4...v3.0.5) + +**Implemented enhancements:** + +- range, and therefore interval, is NaN in computeAxisValues [\#2845](https://github.com/danielgindi/Charts/issues/2845) +- Crash when calling `func highlightValue\(x: Double, dataSetIndex: Int, callDelegate: Bool\)` [\#2840](https://github.com/danielgindi/Charts/issues/2840) + +**Fixed bugs:** + +- Combined Chart, when highlight is active, bars hides line [\#3091](https://github.com/danielgindi/Charts/issues/3091) +- A problem of CombinedChartView's YAxis [\#1830](https://github.com/danielgindi/Charts/issues/1830) + +**Closed issues:** + +- Command /bin/sh failed with exit code 1 [\#3156](https://github.com/danielgindi/Charts/issues/3156) +- Xcode 9 / Swift 4 issue with current master [\#3152](https://github.com/danielgindi/Charts/issues/3152) +- Is it possible to show value on touch next to highlight position? [\#3151](https://github.com/danielgindi/Charts/issues/3151) +- Remove legend [\#3150](https://github.com/danielgindi/Charts/issues/3150) +- Add a shadow to the line chart [\#3148](https://github.com/danielgindi/Charts/issues/3148) +- Missing alternate x-axis labels on line chart [\#3139](https://github.com/danielgindi/Charts/issues/3139) +- Can the histogram set the corner? [\#3138](https://github.com/danielgindi/Charts/issues/3138) +- Charts demo ipa file request [\#3137](https://github.com/danielgindi/Charts/issues/3137) +- Main Thread Checker: UI API called on background thread. [\#3129](https://github.com/danielgindi/Charts/issues/3129) +- How to get X\_axis touch points coordinates in radar graph [\#3127](https://github.com/danielgindi/Charts/issues/3127) +- Division by zero crash in AxisRendererBase [\#3124](https://github.com/danielgindi/Charts/issues/3124) +- why bar chart non start at zero [\#3123](https://github.com/danielgindi/Charts/issues/3123) +- BarChart - Show X-Axis with Step as 1 [\#3122](https://github.com/danielgindi/Charts/issues/3122) +- Have Line Graph Value Labels Above/Below Independently [\#3120](https://github.com/danielgindi/Charts/issues/3120) +- Corner Radius on Grid Background [\#3119](https://github.com/danielgindi/Charts/issues/3119) +- ChartsDemo doesn't compile [\#3116](https://github.com/danielgindi/Charts/issues/3116) +- Rounded line chart [\#3115](https://github.com/danielgindi/Charts/issues/3115) +- value of barChart covered by title [\#3113](https://github.com/danielgindi/Charts/issues/3113) +- PieChartView Can not highlight which i want to highlighted [\#3110](https://github.com/danielgindi/Charts/issues/3110) +- How to scroll bar chart if max values to show? [\#3101](https://github.com/danielgindi/Charts/issues/3101) +- Is it possible to draw a chart like this? [\#3097](https://github.com/danielgindi/Charts/issues/3097) +- How to disable the rotation option of pie charts in iOS charts? [\#3096](https://github.com/danielgindi/Charts/issues/3096) +- How to disable the rotation option of pie charts in iOS charts? [\#3095](https://github.com/danielgindi/Charts/issues/3095) +- 数据空值处理问题 [\#3094](https://github.com/danielgindi/Charts/issues/3094) +- how to display the integer values on pie chart instead of float? [\#3093](https://github.com/danielgindi/Charts/issues/3093) +- Line Chart point colours depend on value at each point [\#3090](https://github.com/danielgindi/Charts/issues/3090) +- how to cancel highlights when the drag gesture ends [\#3089](https://github.com/danielgindi/Charts/issues/3089) +- why my value is .50 ?Why not 0.5? How to do? [\#3083](https://github.com/danielgindi/Charts/issues/3083) +- how to use String in YAxis, rather than Double? [\#3082](https://github.com/danielgindi/Charts/issues/3082) +- Scrolling axis [\#3081](https://github.com/danielgindi/Charts/issues/3081) +- Clipping of values in line graph [\#3077](https://github.com/danielgindi/Charts/issues/3077) +- \[LineChart\] Ignore / don't plot first or end value [\#3075](https://github.com/danielgindi/Charts/issues/3075) +- Which attribute control the yellow line,like the picture? [\#3074](https://github.com/danielgindi/Charts/issues/3074) +- Archive error using swift 4.0 [\#3072](https://github.com/danielgindi/Charts/issues/3072) +- How can I have a chart like this one? [\#3070](https://github.com/danielgindi/Charts/issues/3070) +- Module compiled with Swift 4.0 cannot be imported in Swift 3.2.3 [\#3068](https://github.com/danielgindi/Charts/issues/3068) +- Unable to make chart look like IOS Stock App after trying every mode \(LineChartModeLinear = 0, LineChartModeStepped = 1, LineChartModeCubicBezier = 2, LineChartModeHorizontalBezier = 3\) of LineChartDataSet [\#3066](https://github.com/danielgindi/Charts/issues/3066) +- Cannot Select barChar column [\#3065](https://github.com/danielgindi/Charts/issues/3065) +- Updating data in LineChart takes up to 30 seconds [\#3064](https://github.com/danielgindi/Charts/issues/3064) +- How to sync the scrolling of 2 charts [\#3063](https://github.com/danielgindi/Charts/issues/3063) +- Line chart with bottom spacing and custom position y-labels at min and max values [\#3059](https://github.com/danielgindi/Charts/issues/3059) +- 'characters' is deprecated: Please use String or Substring directly [\#3057](https://github.com/danielgindi/Charts/issues/3057) +- Pod to OC error [\#3053](https://github.com/danielgindi/Charts/issues/3053) +- How to represent a null value,It's like the picture? not 0 [\#3052](https://github.com/danielgindi/Charts/issues/3052) +- dyld library not loaded @rpath/charts.framework/charts reason : image not found XCode 9.1 MacOS version 10.12.6 [\#3050](https://github.com/danielgindi/Charts/issues/3050) +- Can't change the border width of circle point in line chart. [\#3049](https://github.com/danielgindi/Charts/issues/3049) +- Charts library is not working in Swift 4 Xcode 9 [\#3048](https://github.com/danielgindi/Charts/issues/3048) +- Create an image of the entire chart [\#3037](https://github.com/danielgindi/Charts/issues/3037) +- lineChartView only enables one data set to be with icons [\#3036](https://github.com/danielgindi/Charts/issues/3036) +- Add charts to UIView programatically [\#3033](https://github.com/danielgindi/Charts/issues/3033) +- Only disable animation for adding values [\#3031](https://github.com/danielgindi/Charts/issues/3031) +- BarChartDataSet with only negative values doesn't call stringForValue on formatter [\#3030](https://github.com/danielgindi/Charts/issues/3030) +- Please provide an example for pieradarchart [\#3029](https://github.com/danielgindi/Charts/issues/3029) +- Multiple charts in a collection view [\#3028](https://github.com/danielgindi/Charts/issues/3028) +- Bubbles chart [\#3027](https://github.com/danielgindi/Charts/issues/3027) +- delete [\#3025](https://github.com/danielgindi/Charts/issues/3025) +- How to change position xAxis Label on the Top Bar Chart ? [\#3022](https://github.com/danielgindi/Charts/issues/3022) +- How to decrease space between chartData ? Is there any parameter ? [\#3021](https://github.com/danielgindi/Charts/issues/3021) +- 已解决 [\#3020](https://github.com/danielgindi/Charts/issues/3020) +- Drawing min mix median lines [\#3017](https://github.com/danielgindi/Charts/issues/3017) +- Installation error through cocapods [\#3016](https://github.com/danielgindi/Charts/issues/3016) +- Swift 4.0.2 not compatible [\#3015](https://github.com/danielgindi/Charts/issues/3015) +- Error NSAttributedStringKey.font on Xcode 9.1 Swift 4 with Charts \(3.0.4\) [\#3014](https://github.com/danielgindi/Charts/issues/3014) +- Double Bar Lines [\#3013](https://github.com/danielgindi/Charts/issues/3013) +- Same zero line for left and right axis [\#3011](https://github.com/danielgindi/Charts/issues/3011) +- How to get version 3.0.2 ? [\#3009](https://github.com/danielgindi/Charts/issues/3009) +- How can I scroll to previous data? [\#3006](https://github.com/danielgindi/Charts/issues/3006) +- Crashing in X-axis render method. [\#3004](https://github.com/danielgindi/Charts/issues/3004) +- How to align yAxis at zero point? [\#2989](https://github.com/danielgindi/Charts/issues/2989) +- Line Chart View not drawn because Date values in xAxis \(not sorted Ascending/Descending\) ? [\#2988](https://github.com/danielgindi/Charts/issues/2988) +- Showing .0, .00 accoding the the decimal places insted of 0 in graphs [\#2987](https://github.com/danielgindi/Charts/issues/2987) +- How to select one of them in the first time。 [\#2985](https://github.com/danielgindi/Charts/issues/2985) +- 当饼状图的数据为0%的时候,左下角有个多余的字母N,问题已解决,有遇到这个问题的请私聊我 [\#2984](https://github.com/danielgindi/Charts/issues/2984) +- Scale to particular x-axis range in line chart [\#2979](https://github.com/danielgindi/Charts/issues/2979) +- ChartViewDelegate [\#2978](https://github.com/danielgindi/Charts/issues/2978) +- What is the compatible version with Xcode 8.3.3 ? [\#2977](https://github.com/danielgindi/Charts/issues/2977) +- ScatterChartDataSet troubles with alignments. [\#2976](https://github.com/danielgindi/Charts/issues/2976) +- Uneven X-Axis values for a line chart [\#2975](https://github.com/danielgindi/Charts/issues/2975) +- Stacked bar chart value label clipped [\#2974](https://github.com/danielgindi/Charts/issues/2974) +- Pie chart monochrome or gradient fill not support [\#2973](https://github.com/danielgindi/Charts/issues/2973) +- PieChart:- PieChart not completely show. [\#2972](https://github.com/danielgindi/Charts/issues/2972) +- Error after updating to Xcode 9.1 [\#2970](https://github.com/danielgindi/Charts/issues/2970) +- Add cornerRadius to vertical highlighter line and draw circle only on highlight [\#2969](https://github.com/danielgindi/Charts/issues/2969) +- How can I don't draw lines when data absent at some point? [\#2968](https://github.com/danielgindi/Charts/issues/2968) +- How to use your file directly to my project without pod installation? [\#2964](https://github.com/danielgindi/Charts/issues/2964) +- Line chart lines are clipped [\#2963](https://github.com/danielgindi/Charts/issues/2963) +- Marker with multiple datasets [\#2962](https://github.com/danielgindi/Charts/issues/2962) +- how do i run it in xcode 9?? [\#2958](https://github.com/danielgindi/Charts/issues/2958) +- Regarding Xcode version [\#2957](https://github.com/danielgindi/Charts/issues/2957) +- Cannot align chart description on left instead of right [\#2956](https://github.com/danielgindi/Charts/issues/2956) +- change color of bar chart programmatically ? [\#2954](https://github.com/danielgindi/Charts/issues/2954) +- Remove or change line color in chart [\#2953](https://github.com/danielgindi/Charts/issues/2953) +- Show line bar position per seconds [\#2952](https://github.com/danielgindi/Charts/issues/2952) +- Add Two Custom Marker views on linechart graph [\#2951](https://github.com/danielgindi/Charts/issues/2951) +- Display high and low value in chart but Displayed one only [\#2947](https://github.com/danielgindi/Charts/issues/2947) +- Change LineChartDataSet label color not value color. [\#2944](https://github.com/danielgindi/Charts/issues/2944) +- when dataset value is increases then the graph value is misplace . and i am showing three bar in one group. and also show the integer value in particular bar above. [\#2938](https://github.com/danielgindi/Charts/issues/2938) +- Errors after conversion to Swift4 NSAttributedStringKey [\#2937](https://github.com/danielgindi/Charts/issues/2937) +- xAxis setLabelsToSkip and valuesObjc want to have replace api [\#2936](https://github.com/danielgindi/Charts/issues/2936) +- xAxis value is started with 0 but it not coordinate with y axis 0 value [\#2935](https://github.com/danielgindi/Charts/issues/2935) +- line charts with many gradients according the value [\#2934](https://github.com/danielgindi/Charts/issues/2934) +- Xcode 9.1 - Characters is deprecated [\#2933](https://github.com/danielgindi/Charts/issues/2933) +- How to add corner radius to balloonmarker [\#2932](https://github.com/danielgindi/Charts/issues/2932) +- leftAxis and rightAxis didn't show up [\#2931](https://github.com/danielgindi/Charts/issues/2931) +- Errors when importing BalloonMarker [\#2928](https://github.com/danielgindi/Charts/issues/2928) +- Bar chart does not start at zero. [\#2927](https://github.com/danielgindi/Charts/issues/2927) +- The following binaries use incompatible versions of Swift [\#2926](https://github.com/danielgindi/Charts/issues/2926) +- Change the color of a specific X-Axis label and the corresponding data value in a line chart using Charts framework [\#2925](https://github.com/danielgindi/Charts/issues/2925) +- Adding corner radius on top of Bar [\#2924](https://github.com/danielgindi/Charts/issues/2924) +- I want to change colour of the label text on the x-axis where it's highlighted. [\#2923](https://github.com/danielgindi/Charts/issues/2923) +- How to give Gradient colour for limit line in linechartviewDataSet [\#2922](https://github.com/danielgindi/Charts/issues/2922) +- Gradient colour for stroke line horizantally .It is possible in android [\#2921](https://github.com/danielgindi/Charts/issues/2921) +- y axis range not automatically recalculated when adding entry to data set [\#2920](https://github.com/danielgindi/Charts/issues/2920) +- Build framework from project [\#2919](https://github.com/danielgindi/Charts/issues/2919) +- How to draw a diagram above the axis labels? [\#2918](https://github.com/danielgindi/Charts/issues/2918) +- - [\#2917](https://github.com/danielgindi/Charts/issues/2917) +- How to use IValueFormatter in stacked bar chart [\#2916](https://github.com/danielgindi/Charts/issues/2916) +- Use of unresolved identifier NSAttributedStringKey in Xcode 8.3.2 for swift 3 [\#2915](https://github.com/danielgindi/Charts/issues/2915) +- Barchart with rounded bar style [\#2912](https://github.com/danielgindi/Charts/issues/2912) +- Animate adding single point [\#2911](https://github.com/danielgindi/Charts/issues/2911) +- Crash [\#2910](https://github.com/danielgindi/Charts/issues/2910) +- Multi Window [\#2909](https://github.com/danielgindi/Charts/issues/2909) +- how can I unhighlight any slice selected before in PieChart ? [\#2908](https://github.com/danielgindi/Charts/issues/2908) +- Barchart DefaultValueFormatter dataSetIndex always 0 [\#2907](https://github.com/danielgindi/Charts/issues/2907) +- LineChartDataSet Multi color [\#2906](https://github.com/danielgindi/Charts/issues/2906) +- How to disconnect data points? [\#2905](https://github.com/danielgindi/Charts/issues/2905) +- Licensing question [\#2904](https://github.com/danielgindi/Charts/issues/2904) +- A way to add values to labels on x axis? [\#2903](https://github.com/danielgindi/Charts/issues/2903) +- Update cocoapods.org version [\#2902](https://github.com/danielgindi/Charts/issues/2902) +- noDataText for PieChartView isn't working. [\#2901](https://github.com/danielgindi/Charts/issues/2901) +- xcode9 alert swift question [\#2900](https://github.com/danielgindi/Charts/issues/2900) +- Dynamically set the bar width [\#2898](https://github.com/danielgindi/Charts/issues/2898) +- Marker action [\#2897](https://github.com/danielgindi/Charts/issues/2897) +- Filler line for acceptable range of values in LineChart [\#2896](https://github.com/danielgindi/Charts/issues/2896) +- Pie chart full view [\#2895](https://github.com/danielgindi/Charts/issues/2895) +- Problem with BalloonMarker in lineChart [\#2892](https://github.com/danielgindi/Charts/issues/2892) +- OS X Bar chart Demo highlight and stacked color are inconsistent [\#2890](https://github.com/danielgindi/Charts/issues/2890) +- Problem with charts in UITableView cells [\#2888](https://github.com/danielgindi/Charts/issues/2888) +- drawing xAxis ratio values [\#2885](https://github.com/danielgindi/Charts/issues/2885) +- Xcode 9 compatibility [\#2883](https://github.com/danielgindi/Charts/issues/2883) +- Large Whitespace Between X-Axis Labels and Legend [\#2882](https://github.com/danielgindi/Charts/issues/2882) +- help about performance issues about line charts [\#2881](https://github.com/danielgindi/Charts/issues/2881) +- Animation on PieChartView [\#2880](https://github.com/danielgindi/Charts/issues/2880) +- Scrolling chart after setting lineChart.xAxis.axisMaximum = someValue [\#2879](https://github.com/danielgindi/Charts/issues/2879) +- "chartValueSelected" is not getting called in customView [\#2878](https://github.com/danielgindi/Charts/issues/2878) +- curve line [\#2877](https://github.com/danielgindi/Charts/issues/2877) +- Swift 4 issue [\#2876](https://github.com/danielgindi/Charts/issues/2876) +- 不显示百分号了 [\#2873](https://github.com/danielgindi/Charts/issues/2873) +- LineChartView: Using two different colors in one dataset [\#2871](https://github.com/danielgindi/Charts/issues/2871) +- xcode 9.0 errors after installing pod 'Charts' [\#2869](https://github.com/danielgindi/Charts/issues/2869) +- Change scroll direction HorizontalBarChartView x-axis from top to bottom chart [\#2868](https://github.com/danielgindi/Charts/issues/2868) +- Set names of X-axis and Y-axis itself \(not their labels\) [\#2867](https://github.com/danielgindi/Charts/issues/2867) +- 'characters' is deprecated: Please use String or Substring directly [\#2866](https://github.com/danielgindi/Charts/issues/2866) +- Syntax error in pod [\#2865](https://github.com/danielgindi/Charts/issues/2865) +- Filled Line Chart [\#2863](https://github.com/danielgindi/Charts/issues/2863) +- How can I highlight a specific slice of the PieChart? [\#2862](https://github.com/danielgindi/Charts/issues/2862) +- How can I make the chart rotate completely, 360, 720 on a button click ? [\#2861](https://github.com/danielgindi/Charts/issues/2861) +- How can I make the chart rotate completely, 360, 720 on a button click ? [\#2860](https://github.com/danielgindi/Charts/issues/2860) +- xcode9 pod install have a problem [\#2856](https://github.com/danielgindi/Charts/issues/2856) +- can I implement stacked bar with rounded corners ? [\#2855](https://github.com/danielgindi/Charts/issues/2855) +- Updating Charts to 3.0.4 and Swift 4 doesn't work [\#2851](https://github.com/danielgindi/Charts/issues/2851) +- How to add string labels to XAxis horizontal bar in Charts framework\(swift 3\) [\#2850](https://github.com/danielgindi/Charts/issues/2850) +- How to show off numbers in HorizontalBar [\#2849](https://github.com/danielgindi/Charts/issues/2849) +- In Multiple bar chart Unable to set Values more than 4 bar in under given year.. [\#2847](https://github.com/danielgindi/Charts/issues/2847) +- Type 'NSAttributedStringKey' \(aka 'NSString'\) has no member 'font' [\#2844](https://github.com/danielgindi/Charts/issues/2844) +- Install charts via cocapods pulls back old version 3.0.2 [\#2843](https://github.com/danielgindi/Charts/issues/2843) +- xcode 9.0 compile ERROR: "static var 'defaultFormatter' is not public" [\#2842](https://github.com/danielgindi/Charts/issues/2842) +- Pass String to LineChartData [\#2841](https://github.com/danielgindi/Charts/issues/2841) +- Customised graph with ranges\(Normal-blue and Warning-yellow\) also with it's legend [\#2838](https://github.com/danielgindi/Charts/issues/2838) +- using UIGraphicsGetCurrentContext in MarkerImage subclass [\#2835](https://github.com/danielgindi/Charts/issues/2835) +- How to show BarChartDataSet with descending x values? [\#2834](https://github.com/danielgindi/Charts/issues/2834) +- getTransformer function doesn't work properly when AxisDependency is set to right [\#2833](https://github.com/danielgindi/Charts/issues/2833) +- Grouped Bar chart X-axis and Bar Alignment [\#2832](https://github.com/danielgindi/Charts/issues/2832) +- How to create a custom Marker from Xib - Swift [\#2831](https://github.com/danielgindi/Charts/issues/2831) +- does not support new Objective-C project with Xcode 9 [\#2830](https://github.com/danielgindi/Charts/issues/2830) +- radarChart default labelCount [\#2829](https://github.com/danielgindi/Charts/issues/2829) +- NSDecimalNumber instead of Double [\#2828](https://github.com/danielgindi/Charts/issues/2828) +- LineChart 填充 [\#2825](https://github.com/danielgindi/Charts/issues/2825) +- Swift: Different colours for circles in one LineChartDataSet [\#2824](https://github.com/danielgindi/Charts/issues/2824) +- Unable to update Chart library [\#2823](https://github.com/danielgindi/Charts/issues/2823) +- xMin, xMax, yMin, yMax not recalculated to zero on .clear\(\) [\#2822](https://github.com/danielgindi/Charts/issues/2822) +- OS X errors with swift 4 [\#2819](https://github.com/danielgindi/Charts/issues/2819) +- I want to add marker image from line chart in swift 4.0 [\#2818](https://github.com/danielgindi/Charts/issues/2818) +- ChartMarkerView not able to subclass of swift class [\#2817](https://github.com/danielgindi/Charts/issues/2817) +- Type 'NSAttributedStringKey' \(aka 'NSString'\) has no member 'font' [\#2816](https://github.com/danielgindi/Charts/issues/2816) +- StackedBarChart isn't stacking bars [\#2815](https://github.com/danielgindi/Charts/issues/2815) +- Cocoapod 3.0.4 [\#2814](https://github.com/danielgindi/Charts/issues/2814) +- Error aplication Thread in ios 11 with version 3.0.4 [\#2812](https://github.com/danielgindi/Charts/issues/2812) +- Cannot compile with version 3.0.3 and Xcode 9 due to incompatible Swift version [\#2810](https://github.com/danielgindi/Charts/issues/2810) +- I have the version 3.0.4 but when compile project I has an error [\#2809](https://github.com/danielgindi/Charts/issues/2809) +- 拖动的时候 会强烈抖动 [\#2808](https://github.com/danielgindi/Charts/issues/2808) +- Version 3.0.4 doesn't appear via Cocoapods [\#2807](https://github.com/danielgindi/Charts/issues/2807) +- Bump Pod Version [\#2805](https://github.com/danielgindi/Charts/issues/2805) +- module 'Charts' not found when dray it into target [\#2803](https://github.com/danielgindi/Charts/issues/2803) +- How to get y-axis values "Int" to "Double" [\#2799](https://github.com/danielgindi/Charts/issues/2799) +- The line chart enlarged is crash [\#2797](https://github.com/danielgindi/Charts/issues/2797) +- How to change the entrylabel\(i.e, 90%\) color in PieChart [\#2794](https://github.com/danielgindi/Charts/issues/2794) +- Chart Grid Lines Don't Always Draw [\#2791](https://github.com/danielgindi/Charts/issues/2791) +- Charts.framework: No such file or directory [\#2789](https://github.com/danielgindi/Charts/issues/2789) +- Memory Leak in Horizontal Bar Chart [\#2745](https://github.com/danielgindi/Charts/issues/2745) +- axisDependency does not work [\#2258](https://github.com/danielgindi/Charts/issues/2258) +- HorizontalBarChart does not update labels correctly [\#2257](https://github.com/danielgindi/Charts/issues/2257) + +**Merged pull requests:** + +- Syncing 4.0.0 with master [\#3160](https://github.com/danielgindi/Charts/pull/3160) ([jjatie](https://github.com/jjatie)) +- Subclassing of LegendRenderer didn't take any effect [\#3149](https://github.com/danielgindi/Charts/pull/3149) ([l-lemesev](https://github.com/l-lemesev)) +- Update ViewPortHandler.swift [\#3143](https://github.com/danielgindi/Charts/pull/3143) ([ParkinWu](https://github.com/ParkinWu)) +- Renderer protocols [\#3136](https://github.com/danielgindi/Charts/pull/3136) ([jjatie](https://github.com/jjatie)) +- Update 4.0.0 with master [\#3135](https://github.com/danielgindi/Charts/pull/3135) ([jjatie](https://github.com/jjatie)) +- Fix axis label disappear when zooming in deep enough [\#3132](https://github.com/danielgindi/Charts/pull/3132) ([liuxuan30](https://github.com/liuxuan30)) +- Updating 4.0.0 with latest changes in master [\#3130](https://github.com/danielgindi/Charts/pull/3130) ([jjatie](https://github.com/jjatie)) +- add option to build demo projects unit tests on iOS [\#3121](https://github.com/danielgindi/Charts/pull/3121) ([liuxuan30](https://github.com/liuxuan30)) +- Makes ChartsDemo compiling again [\#3117](https://github.com/danielgindi/Charts/pull/3117) ([valeriyvan](https://github.com/valeriyvan)) +- Fixed using wrong axis \(Issue \#2257\) [\#3114](https://github.com/danielgindi/Charts/pull/3114) ([defranke](https://github.com/defranke)) +- for \#3061 fix animation crash [\#3098](https://github.com/danielgindi/Charts/pull/3098) ([liuxuan30](https://github.com/liuxuan30)) +- Refactored ChartUtils method into CGPoint extension [\#3087](https://github.com/danielgindi/Charts/pull/3087) ([jjatie](https://github.com/jjatie)) +- Moved ChartUtils drawing methods into CGContext extension [\#3086](https://github.com/danielgindi/Charts/pull/3086) ([jjatie](https://github.com/jjatie)) +- for \#2745. chart should be weak. [\#3078](https://github.com/danielgindi/Charts/pull/3078) ([liuxuan30](https://github.com/liuxuan30)) +- Fix a bug may cause infinite loop. [\#3073](https://github.com/danielgindi/Charts/pull/3073) ([JyHu](https://github.com/JyHu)) +- Chartviewbase redundant ivar [\#3045](https://github.com/danielgindi/Charts/pull/3045) ([jjatie](https://github.com/jjatie)) +- Removed `isKind\(of:\)` [\#3044](https://github.com/danielgindi/Charts/pull/3044) ([jjatie](https://github.com/jjatie)) +- Removed redundant ivars in BarLineChartViewBase [\#3043](https://github.com/danielgindi/Charts/pull/3043) ([jjatie](https://github.com/jjatie)) +- fileprivate -\> private [\#3042](https://github.com/danielgindi/Charts/pull/3042) ([jjatie](https://github.com/jjatie)) +- Viewportjob minor cleanup [\#3041](https://github.com/danielgindi/Charts/pull/3041) ([jjatie](https://github.com/jjatie)) +- Removed @objc from internal properties [\#3038](https://github.com/danielgindi/Charts/pull/3038) ([jjatie](https://github.com/jjatie)) +- Minor changes to BubbleChartRenderer logic [\#3010](https://github.com/danielgindi/Charts/pull/3010) ([jjatie](https://github.com/jjatie)) +- BarChartRenderer Logic cleanup [\#3008](https://github.com/danielgindi/Charts/pull/3008) ([jjatie](https://github.com/jjatie)) +- Minor changes to Animator [\#3005](https://github.com/danielgindi/Charts/pull/3005) ([jjatie](https://github.com/jjatie)) +- Minor cleanup to Highlighter types [\#3003](https://github.com/danielgindi/Charts/pull/3003) ([jjatie](https://github.com/jjatie)) +- Resubmit of \#2730 [\#3002](https://github.com/danielgindi/Charts/pull/3002) ([jjatie](https://github.com/jjatie)) +- The backing var is not necessary. [\#3000](https://github.com/danielgindi/Charts/pull/3000) ([jjatie](https://github.com/jjatie)) +- Minor refactoring of Formatter logic [\#2998](https://github.com/danielgindi/Charts/pull/2998) ([jjatie](https://github.com/jjatie)) +- Remove java interface convention [\#2997](https://github.com/danielgindi/Charts/pull/2997) ([jjatie](https://github.com/jjatie)) +- Removed methods and properties deprecated in 1.0 [\#2996](https://github.com/danielgindi/Charts/pull/2996) ([jjatie](https://github.com/jjatie)) +- Replaced `ChartUtils` methods with `CGSize` extensions [\#2995](https://github.com/danielgindi/Charts/pull/2995) ([jjatie](https://github.com/jjatie)) +- Replaced relevant `ChartUtils` methods with `Double` extensions [\#2994](https://github.com/danielgindi/Charts/pull/2994) ([jjatie](https://github.com/jjatie)) +- Replaced `ChartUtils.Math` in favour of an extension on `FloatingPoint` [\#2993](https://github.com/danielgindi/Charts/pull/2993) ([jjatie](https://github.com/jjatie)) +- Minor changes to logic in `ViewPortJob` subclasses. [\#2992](https://github.com/danielgindi/Charts/pull/2992) ([jjatie](https://github.com/jjatie)) +- `ChartRenderer`'s must be initialized with a chart [\#2982](https://github.com/danielgindi/Charts/pull/2982) ([jjatie](https://github.com/jjatie)) +- Animator non nil [\#2981](https://github.com/danielgindi/Charts/pull/2981) ([jjatie](https://github.com/jjatie)) +- View port handler nonnil [\#2980](https://github.com/danielgindi/Charts/pull/2980) ([jjatie](https://github.com/jjatie)) +- Add support for iPhone X [\#2967](https://github.com/danielgindi/Charts/pull/2967) ([liuxuan30](https://github.com/liuxuan30)) +- added highlightColor parameter for pie charts [\#2961](https://github.com/danielgindi/Charts/pull/2961) ([pascalherrmann](https://github.com/pascalherrmann)) +- Add Swift Package Manager support. [\#2950](https://github.com/danielgindi/Charts/pull/2950) ([BrianDoig](https://github.com/BrianDoig)) +- Fix turning off drag in X and Y axes separately. [\#2949](https://github.com/danielgindi/Charts/pull/2949) ([maciejtrybilo](https://github.com/maciejtrybilo)) +- modify for Character Alert: characters is deprecated [\#2942](https://github.com/danielgindi/Charts/pull/2942) ([suzuhiroruri](https://github.com/suzuhiroruri)) +- fix \#2890. Turned out it's multiple bar chart but not grouped [\#2891](https://github.com/danielgindi/Charts/pull/2891) ([liuxuan30](https://github.com/liuxuan30)) +- Update LICENSE [\#2887](https://github.com/danielgindi/Charts/pull/2887) ([sDaniel](https://github.com/sDaniel)) +- fix \#1830. credit from https://github.com/danielgindi/Charts/pull/2049 [\#2874](https://github.com/danielgindi/Charts/pull/2874) ([liuxuan30](https://github.com/liuxuan30)) +- duplicated code for set1 in set2 section [\#2872](https://github.com/danielgindi/Charts/pull/2872) ([liuxuan30](https://github.com/liuxuan30)) +- added DataApproximator+N extension [\#2848](https://github.com/danielgindi/Charts/pull/2848) ([666tos](https://github.com/666tos)) +- Bumped pod version [\#2806](https://github.com/danielgindi/Charts/pull/2806) ([mohpor](https://github.com/mohpor)) +- unwrap optionals [\#2698](https://github.com/danielgindi/Charts/pull/2698) ([russellbstephens](https://github.com/russellbstephens)) +- Replaced unnecessary NSObjectProtocol [\#2629](https://github.com/danielgindi/Charts/pull/2629) ([jjatie](https://github.com/jjatie)) +- Swift iOS Demos [\#2628](https://github.com/danielgindi/Charts/pull/2628) ([jjatie](https://github.com/jjatie)) +- add example playground [\#2364](https://github.com/danielgindi/Charts/pull/2364) ([thierryH91200](https://github.com/thierryH91200)) +- Compatibility with swift playgrounds [\#2335](https://github.com/danielgindi/Charts/pull/2335) ([macteo](https://github.com/macteo)) + +## [v3.0.4](https://github.com/danielgindi/Charts/tree/v3.0.4) (2017-09-21) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.4...v3.0.4) + +## [3.0.4](https://github.com/danielgindi/Charts/tree/3.0.4) (2017-09-21) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.3...3.0.4) + +**Closed issues:** + +- cocoaPod can not install branch of swift4 [\#2802](https://github.com/danielgindi/Charts/issues/2802) +- Swift 4 [\#2801](https://github.com/danielgindi/Charts/issues/2801) +- how tomake leftAxis.inverted and LineChartDataSet.fillColor not inverted [\#2798](https://github.com/danielgindi/Charts/issues/2798) +- Bar Chart Demo One Label One Color [\#2792](https://github.com/danielgindi/Charts/issues/2792) +- BarChart draw vertical dotted lines on specific bars [\#2788](https://github.com/danielgindi/Charts/issues/2788) +- How can I control the number of decimals? [\#2787](https://github.com/danielgindi/Charts/issues/2787) +- Charts “3.0.2” cannot find "BalloonMarker" [\#2786](https://github.com/danielgindi/Charts/issues/2786) +- Graphs gets cut from both ends [\#2785](https://github.com/danielgindi/Charts/issues/2785) +- Is it possible to draw multiple lineCharts with different starting points on same view? [\#2783](https://github.com/danielgindi/Charts/issues/2783) +- getFormattedLabel Index Out of Range [\#2782](https://github.com/danielgindi/Charts/issues/2782) +- Line chart right axis inset [\#2781](https://github.com/danielgindi/Charts/issues/2781) +- No type or protocol named 'IChartAxisValueFormatter' [\#2780](https://github.com/danielgindi/Charts/issues/2780) +- Zero Value is under BarChart [\#2779](https://github.com/danielgindi/Charts/issues/2779) +- App crashes while using Charts swift library in Objective C Project [\#2778](https://github.com/danielgindi/Charts/issues/2778) +- Cannot subscript a value of type '\[String : AnyObject\]' with an index of type 'NSAttributedStringKey' [\#2777](https://github.com/danielgindi/Charts/issues/2777) +- How to drag data entries to change their y value in real time. [\#2776](https://github.com/danielgindi/Charts/issues/2776) +- How to break line the legends ? [\#2775](https://github.com/danielgindi/Charts/issues/2775) +- How can I get current viewport shown x range and scale value [\#2770](https://github.com/danielgindi/Charts/issues/2770) +- How to disable scale of left YAxis? [\#2748](https://github.com/danielgindi/Charts/issues/2748) +- Bar Chart remove x if y is 0 [\#2747](https://github.com/danielgindi/Charts/issues/2747) +- How to display Negative X-Axis on LineChart [\#797](https://github.com/danielgindi/Charts/issues/797) + +**Merged pull requests:** + +- Changes for Swift 4 [\#2507](https://github.com/danielgindi/Charts/pull/2507) ([liuxuan30](https://github.com/liuxuan30)) + +## [v3.0.3](https://github.com/danielgindi/Charts/tree/v3.0.3) (2017-09-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.3...v3.0.3) + +## [3.0.3](https://github.com/danielgindi/Charts/tree/3.0.3) (2017-09-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.2...3.0.3) + +**Implemented enhancements:** + +- fatal error: Index out of range [\#2109](https://github.com/danielgindi/Charts/issues/2109) + +**Fixed bugs:** + +- Crash in YAxisRendererRadarChart [\#2356](https://github.com/danielgindi/Charts/issues/2356) +- Fatal error when providing multiple data sets in PieChartData [\#2099](https://github.com/danielgindi/Charts/issues/2099) + +**Closed issues:** + +- X Values Hidden On Bar Graph [\#2774](https://github.com/danielgindi/Charts/issues/2774) +- How to add new real-time data to lineChart ? [\#2773](https://github.com/danielgindi/Charts/issues/2773) +- Avoid xAxis limit-labels display in a one-bar BarChart. [\#2771](https://github.com/danielgindi/Charts/issues/2771) +- zoom at particular position via code [\#2769](https://github.com/danielgindi/Charts/issues/2769) +- how to use HorizontalBarChart with decimal number as xAxis [\#2768](https://github.com/danielgindi/Charts/issues/2768) +- Cannot rescale Y-axis even if changing axisMinimum and axisMaximum [\#2766](https://github.com/danielgindi/Charts/issues/2766) +- I want to change ValueFormat of BarChartDataSet. I can't change it. [\#2764](https://github.com/danielgindi/Charts/issues/2764) +- Changing x-label formats from one line to word-wrapped is awkward [\#2763](https://github.com/danielgindi/Charts/issues/2763) +- chartValueSelected not getting value from Max Value [\#2762](https://github.com/danielgindi/Charts/issues/2762) +- Dual YAxis [\#2761](https://github.com/danielgindi/Charts/issues/2761) +- How to set the position of the values top on BarChartView? [\#2759](https://github.com/danielgindi/Charts/issues/2759) +- Line chart xAxis cut left or right in iphone 5 [\#2758](https://github.com/danielgindi/Charts/issues/2758) +- TableView does not scroll vertically after graph is rendered to cells [\#2757](https://github.com/danielgindi/Charts/issues/2757) +- Fill the color between two line charts using IFillFormatter [\#2756](https://github.com/danielgindi/Charts/issues/2756) +- How to use custom view for labels of xAxis? [\#2755](https://github.com/danielgindi/Charts/issues/2755) +- Chart not consistently showing data [\#2753](https://github.com/danielgindi/Charts/issues/2753) +- Obtaining current number of points being rendered in zoomed viewing window [\#2752](https://github.com/danielgindi/Charts/issues/2752) +- Barchart starting above X-Axis [\#2751](https://github.com/danielgindi/Charts/issues/2751) +- Getting the position of Data array of entry: ChartDataEntry via chartValueSelected\(args\) method [\#2750](https://github.com/danielgindi/Charts/issues/2750) +- Create Simple Bar Chart [\#2749](https://github.com/danielgindi/Charts/issues/2749) +- iOS8 simulator crashed iOS 8模拟器崩溃在画Y轴线的地方 [\#2746](https://github.com/danielgindi/Charts/issues/2746) +- Chart displays values, but no bars [\#2744](https://github.com/danielgindi/Charts/issues/2744) +- Can not inherit Charts to subclass some cutomize charts [\#2743](https://github.com/danielgindi/Charts/issues/2743) +- CandleStick fill colors not showing [\#2742](https://github.com/danielgindi/Charts/issues/2742) +- Bar chart click on outside of bar calling delegate [\#2741](https://github.com/danielgindi/Charts/issues/2741) +- Resize chart after adding limit line [\#2739](https://github.com/danielgindi/Charts/issues/2739) +- Pie chart entry icon get cut [\#2738](https://github.com/danielgindi/Charts/issues/2738) +- How can I set ValuePosition for individual slices? [\#2736](https://github.com/danielgindi/Charts/issues/2736) +- You can't slide along the X-axis [\#2735](https://github.com/danielgindi/Charts/issues/2735) +- Candlechart zooming disable interaction with viewcontroller [\#2734](https://github.com/danielgindi/Charts/issues/2734) +- 2 datasets, one should only display one label at the top [\#2733](https://github.com/danielgindi/Charts/issues/2733) +- How do I change the color of the text on top of the bars? [\#2732](https://github.com/danielgindi/Charts/issues/2732) +- Can't subclass BarChartRenderer due to 'fileprivate' status of many properties [\#2731](https://github.com/danielgindi/Charts/issues/2731) +- Left axis axisMinimum inside a TableviewCell does not work [\#2729](https://github.com/danielgindi/Charts/issues/2729) +- How to set minimum displayed Y axis value [\#2728](https://github.com/danielgindi/Charts/issues/2728) +- Custom Text Axis X Horizontal Bar Chart [\#2726](https://github.com/danielgindi/Charts/issues/2726) +- Crash when use in Notification Content Extension [\#2725](https://github.com/danielgindi/Charts/issues/2725) +- Problems encountered with charts [\#2724](https://github.com/danielgindi/Charts/issues/2724) +- Can I use Charts in Swift 4? [\#2723](https://github.com/danielgindi/Charts/issues/2723) +- Add gradient to bar chart [\#2722](https://github.com/danielgindi/Charts/issues/2722) +- Draw bar chart from axisMinimum instead of 0 [\#2721](https://github.com/danielgindi/Charts/issues/2721) +- Different Charts-Swifg.h when simulator and iphone [\#2720](https://github.com/danielgindi/Charts/issues/2720) +- Viewport transX jumping when zooming Y scale \(dynamic/realtime data\) [\#2719](https://github.com/danielgindi/Charts/issues/2719) +- Align X labels with Charts [\#2718](https://github.com/danielgindi/Charts/issues/2718) +- iOS swift3 Chart xaxis duplicate value issue for linechartview [\#2715](https://github.com/danielgindi/Charts/issues/2715) +- Label Position xAxis Radar Chart [\#2714](https://github.com/danielgindi/Charts/issues/2714) +- Showing actual value IN ADDITION to percentage, in a pie slice? [\#2713](https://github.com/danielgindi/Charts/issues/2713) +- Fail to display any thing in line chart. [\#2712](https://github.com/danielgindi/Charts/issues/2712) +- How to decrees column width size in LineChart [\#2710](https://github.com/danielgindi/Charts/issues/2710) +- Runtime EXC\_BAD\_ACCESS with barchart whiles zoom in [\#2709](https://github.com/danielgindi/Charts/issues/2709) +- How to format values on barchart [\#2708](https://github.com/danielgindi/Charts/issues/2708) +- where do I find ioscharts.framework? [\#2707](https://github.com/danielgindi/Charts/issues/2707) +- Add horizontal line at certain value on Y-Axis? [\#2706](https://github.com/danielgindi/Charts/issues/2706) +- BarChart does not render with multiple data sets [\#2705](https://github.com/danielgindi/Charts/issues/2705) +- Balloon Marker: making it work in line chart inside combined view [\#2703](https://github.com/danielgindi/Charts/issues/2703) +- IValueFormatter text showing More than one Time [\#2700](https://github.com/danielgindi/Charts/issues/2700) +- Disable bar selection or highlight? [\#2699](https://github.com/danielgindi/Charts/issues/2699) +- Increase Yaxis Labes According to the max values. [\#2696](https://github.com/danielgindi/Charts/issues/2696) +- xAxis scrolling in combineChartView [\#2695](https://github.com/danielgindi/Charts/issues/2695) +- How to highlight at specific entry ? [\#2693](https://github.com/danielgindi/Charts/issues/2693) +- Horizontal bar charts 'Y' values are getting overlapped with '0' [\#2691](https://github.com/danielgindi/Charts/issues/2691) +- Two ChartViews own the same Xaxis [\#2690](https://github.com/danielgindi/Charts/issues/2690) +- issues about BarChartView [\#2689](https://github.com/danielgindi/Charts/issues/2689) +- Tap Gesture Handler callback method [\#2686](https://github.com/danielgindi/Charts/issues/2686) +- How to draw dashed circles for values? [\#2685](https://github.com/danielgindi/Charts/issues/2685) +- How to Redraw the charts? [\#2684](https://github.com/danielgindi/Charts/issues/2684) +- BarChartView top border not showing [\#2682](https://github.com/danielgindi/Charts/issues/2682) +- Drawing horizontal dashed lines except on x-axis line? [\#2681](https://github.com/danielgindi/Charts/issues/2681) +- X-Axis Date values not displaying properly? [\#2680](https://github.com/danielgindi/Charts/issues/2680) +- Dashed border on highlighted bar - BarChart [\#2675](https://github.com/danielgindi/Charts/issues/2675) +- ChartFill - I would like to fill above the line [\#2674](https://github.com/danielgindi/Charts/issues/2674) +- Anyone have iOS charts working with Xcode 9 Beta? [\#2673](https://github.com/danielgindi/Charts/issues/2673) +- Change Scale on Y Axis for CombinedChart [\#2672](https://github.com/danielgindi/Charts/issues/2672) +- Y-axis with text [\#2671](https://github.com/danielgindi/Charts/issues/2671) +- Show only 2 labels on xAxis in CombinedChartView [\#2670](https://github.com/danielgindi/Charts/issues/2670) +- Graphing just a part of the data [\#2669](https://github.com/danielgindi/Charts/issues/2669) +- How to add texts/image into a chart? [\#2667](https://github.com/danielgindi/Charts/issues/2667) +- Is it possible to scroll without Zooming/ Scaling ? [\#2666](https://github.com/danielgindi/Charts/issues/2666) +- Use Charts in Swift3,Error [\#2664](https://github.com/danielgindi/Charts/issues/2664) +- Custom highlighter/marker [\#2663](https://github.com/danielgindi/Charts/issues/2663) +- Display programatically a marker on a chart [\#2662](https://github.com/danielgindi/Charts/issues/2662) +- Scrollview inside Marker [\#2661](https://github.com/danielgindi/Charts/issues/2661) +- Bitcode Problem [\#2660](https://github.com/danielgindi/Charts/issues/2660) +- Fix Marker on center even when chart is scaled or dragged [\#2659](https://github.com/danielgindi/Charts/issues/2659) +- How to add marker to center position in ios charts while scrolling horizontally with increasing scaleX and enabling drag [\#2658](https://github.com/danielgindi/Charts/issues/2658) +- Y Axis scales display format [\#2657](https://github.com/danielgindi/Charts/issues/2657) +- Marker and long press gesture... [\#2656](https://github.com/danielgindi/Charts/issues/2656) +- Pie chart Crash [\#2655](https://github.com/danielgindi/Charts/issues/2655) +- YAxisValues:"Zero" of the integer part is not displayed when the YAxis coordinate is zero [\#2653](https://github.com/danielgindi/Charts/issues/2653) +- Memory leak when valueFormatter is set [\#2652](https://github.com/danielgindi/Charts/issues/2652) +- autoScaleMinMaxEnabled, axisMaximum and axisMinimum [\#2651](https://github.com/danielgindi/Charts/issues/2651) +- Draw X-Axis labels with dates keeping index of x-axis independent like before [\#2648](https://github.com/danielgindi/Charts/issues/2648) +- About ChartHighLight [\#2647](https://github.com/danielgindi/Charts/issues/2647) +- Start value from X-Axis [\#2646](https://github.com/danielgindi/Charts/issues/2646) +- Combined chart with horizontal bar and bubble [\#2644](https://github.com/danielgindi/Charts/issues/2644) +- I have a problem with compiling [\#2643](https://github.com/danielgindi/Charts/issues/2643) +- How to implement custom dataset in objective-c? [\#2639](https://github.com/danielgindi/Charts/issues/2639) +- I am not able to set values on the bar in simple bar chart. [\#2638](https://github.com/danielgindi/Charts/issues/2638) +- Swift based Charts library increased application size when used for objective c based project [\#2637](https://github.com/danielgindi/Charts/issues/2637) +- 使用CombinedChartView绘制柱形图,如何只让当前bar视图显示灰色背影。 [\#2636](https://github.com/danielgindi/Charts/issues/2636) +- OHLC charts... [\#2635](https://github.com/danielgindi/Charts/issues/2635) +- unable to set string values on x-axis in grouped bar chart . [\#2632](https://github.com/danielgindi/Charts/issues/2632) +- How to set group width in multiple bar chart? [\#2631](https://github.com/danielgindi/Charts/issues/2631) +- override renderLegend\(context: CGContext\) [\#2630](https://github.com/danielgindi/Charts/issues/2630) +- Changing chart's type without creating a new object... [\#2627](https://github.com/danielgindi/Charts/issues/2627) +- Using Charts in NSStackView [\#2626](https://github.com/danielgindi/Charts/issues/2626) +- Does PieChart support multiple columns of vertical legend? [\#2625](https://github.com/danielgindi/Charts/issues/2625) +- I need this method: setShowOnlyMinMax [\#2624](https://github.com/danielgindi/Charts/issues/2624) +- Unable to use this library in Objective-c . [\#2623](https://github.com/danielgindi/Charts/issues/2623) +- 计算柱形图的宽度和设定间隙 [\#2622](https://github.com/danielgindi/Charts/issues/2622) +- How to adjust RadarChartView text from the bottom of the height? [\#2621](https://github.com/danielgindi/Charts/issues/2621) +- How to give all pie-slices a rounded edge? [\#2620](https://github.com/danielgindi/Charts/issues/2620) +- Alternative color to fill in radar chart [\#2617](https://github.com/danielgindi/Charts/issues/2617) +- About gradient color for lineChartView [\#2615](https://github.com/danielgindi/Charts/issues/2615) +- Invalid bundle [\#2614](https://github.com/danielgindi/Charts/issues/2614) +- Want to display circles at data points on a line graph only if the data has changed or is about to change [\#2613](https://github.com/danielgindi/Charts/issues/2613) +- Swift language Version. [\#2612](https://github.com/danielgindi/Charts/issues/2612) +- Linker Command Fail error [\#2611](https://github.com/danielgindi/Charts/issues/2611) +- xAxis's first lable always on the left [\#2610](https://github.com/danielgindi/Charts/issues/2610) +- when i Creat one LineChartData objc. it's draws Three points [\#2609](https://github.com/danielgindi/Charts/issues/2609) +- i wanna display Char form with no data. but with Y Values. [\#2608](https://github.com/danielgindi/Charts/issues/2608) +- Is there any way to get the xaxis value when chart scroll end specific area? [\#2607](https://github.com/danielgindi/Charts/issues/2607) +- Memory Leak in Legend and ArrayBufferProtocol [\#2606](https://github.com/danielgindi/Charts/issues/2606) +- fatal error due to call to computeAxisValues during call to notifyDataSetChanged [\#2605](https://github.com/danielgindi/Charts/issues/2605) +- Bar Chart & label displayed wrongly when dataset count changes [\#2603](https://github.com/danielgindi/Charts/issues/2603) +- BarChart.Axis label change starting index when .rightAxix is enabled [\#2602](https://github.com/danielgindi/Charts/issues/2602) +- Spacing between left axis labels [\#2601](https://github.com/danielgindi/Charts/issues/2601) +- React Native support [\#2598](https://github.com/danielgindi/Charts/issues/2598) +- Not able to see yAxis label while changing position of that label [\#2596](https://github.com/danielgindi/Charts/issues/2596) +- About stacked bar value label postion [\#2595](https://github.com/danielgindi/Charts/issues/2595) +- Invalid Bundle - Xcode 9 Beta 2 [\#2593](https://github.com/danielgindi/Charts/issues/2593) +- Stacked bar always show last value [\#2592](https://github.com/danielgindi/Charts/issues/2592) +- Use Charts in App Extension [\#2590](https://github.com/danielgindi/Charts/issues/2590) +- About bar and line combined [\#2589](https://github.com/danielgindi/Charts/issues/2589) +- Draw graph of a function [\#2588](https://github.com/danielgindi/Charts/issues/2588) +- Scrolling chart [\#2587](https://github.com/danielgindi/Charts/issues/2587) +- How change value double to value int format? [\#2586](https://github.com/danielgindi/Charts/issues/2586) +- stringForValue value [\#2585](https://github.com/danielgindi/Charts/issues/2585) +- Invalid architecture... support arm64. [\#2584](https://github.com/danielgindi/Charts/issues/2584) +- Line chart with blank data show Y axis label incorrect on iPhone 5 [\#2583](https://github.com/danielgindi/Charts/issues/2583) +- 'M\_PI' is deprecated: Please use 'Double.pi' or '.pi' to get the value of correct type and avoid casting. [\#2580](https://github.com/danielgindi/Charts/issues/2580) +- 0 lost when the value less than 1.0,why? [\#2579](https://github.com/danielgindi/Charts/issues/2579) +- Error Library not loaded: @rpath/libswiftAppKit.dylib [\#2578](https://github.com/danielgindi/Charts/issues/2578) +- CenterText/Description Text overruns onto PieChart [\#2577](https://github.com/danielgindi/Charts/issues/2577) +- Hide specific legend not all [\#2576](https://github.com/danielgindi/Charts/issues/2576) +- horizontal barchart each bar have different maximum value [\#2575](https://github.com/danielgindi/Charts/issues/2575) +- Barchart fixed interval in left axis [\#2574](https://github.com/danielgindi/Charts/issues/2574) +- Change color of Bar chart data label [\#2573](https://github.com/danielgindi/Charts/issues/2573) +- Visible ChartDataEntry when zoomed in? [\#2572](https://github.com/danielgindi/Charts/issues/2572) +- Changing color of the bar graph [\#2571](https://github.com/danielgindi/Charts/issues/2571) +- Custom bar chart highlight style [\#2570](https://github.com/danielgindi/Charts/issues/2570) +- How to show LineChart with icon [\#2566](https://github.com/danielgindi/Charts/issues/2566) +- how to do Paging [\#2565](https://github.com/danielgindi/Charts/issues/2565) +- Range float bars [\#2564](https://github.com/danielgindi/Charts/issues/2564) +- Cropping left axis labels and missing some values [\#2563](https://github.com/danielgindi/Charts/issues/2563) +- How to create a custom marker view in line chart for showing x values as well [\#2562](https://github.com/danielgindi/Charts/issues/2562) +- HorizontalBarChartView:when i set Xvalue = 0,1,2,3..... HorizontalBarChartView some X dont show [\#2559](https://github.com/danielgindi/Charts/issues/2559) +- But I hope also have the valueFonts property set for each font size, like valueColors [\#2558](https://github.com/danielgindi/Charts/issues/2558) +- charts uses iphone show "No architectures to compile for \(ONLY\_ACTIVE\_ARCH=YES, active arch=arm64, VALID\_ARCHS=i386 x86\_64 \)". [\#2557](https://github.com/danielgindi/Charts/issues/2557) +- Caching charts [\#2555](https://github.com/danielgindi/Charts/issues/2555) +- How to add X axis values in the balloon marker view in IOS Charts? [\#2554](https://github.com/danielgindi/Charts/issues/2554) +- One label for each data point - Line Chart - SOLUTION FOUND [\#2553](https://github.com/danielgindi/Charts/issues/2553) +- PieChart legend.yOffset bug [\#2552](https://github.com/danielgindi/Charts/issues/2552) +- PieChart legend.yOffset bug [\#2551](https://github.com/danielgindi/Charts/issues/2551) +- Duplicates x-axis labels are plotted separately in graph? [\#2549](https://github.com/danielgindi/Charts/issues/2549) +- How to set the label count for X axis ? [\#2548](https://github.com/danielgindi/Charts/issues/2548) +- Hide graph label if value fall below a certain threshold/minimum [\#2547](https://github.com/danielgindi/Charts/issues/2547) +- BarChar Position Label [\#2546](https://github.com/danielgindi/Charts/issues/2546) +- Swift language upgrade required [\#2544](https://github.com/danielgindi/Charts/issues/2544) +- BarChartDataEntry different value than value display for each BarChartDataSet [\#2543](https://github.com/danielgindi/Charts/issues/2543) +- LineChartDataSet why there is no valueFonts [\#2542](https://github.com/danielgindi/Charts/issues/2542) +- Need swift combined chart demo. [\#2540](https://github.com/danielgindi/Charts/issues/2540) +- Pie Chart Highlighted region [\#2536](https://github.com/danielgindi/Charts/issues/2536) +- Replace the value label without redraw the bar. [\#2535](https://github.com/danielgindi/Charts/issues/2535) +- Lines on Horizontal Bar Chart [\#2532](https://github.com/danielgindi/Charts/issues/2532) +- Cannot convert value of type 'AutoreleasingUnsafeMutablePointer\' to expected argument type 'AutoreleasingUnsafeMutablePointer\?' [\#2530](https://github.com/danielgindi/Charts/issues/2530) +- zoom programatically, reset the zoom, set the highlight and moving the X-Axis and the Y-Axis to the middle [\#2529](https://github.com/danielgindi/Charts/issues/2529) +- BarGraph - 0 values - Bar Offset [\#2528](https://github.com/danielgindi/Charts/issues/2528) +- Chart displays intermittently [\#2527](https://github.com/danielgindi/Charts/issues/2527) +- Changing BarChart xAxis label position [\#2526](https://github.com/danielgindi/Charts/issues/2526) +- Create PDF Of Charts [\#2525](https://github.com/danielgindi/Charts/issues/2525) +- What is the equivalent of "onChartDoubleTapped"? [\#2524](https://github.com/danielgindi/Charts/issues/2524) +- Delegate Memory Leak [\#2523](https://github.com/danielgindi/Charts/issues/2523) +- Chart is sometimes not showing data on Plus devices [\#2521](https://github.com/danielgindi/Charts/issues/2521) +- How to run in Xcode 9 \(beta\) [\#2520](https://github.com/danielgindi/Charts/issues/2520) +- HorizontalBarChartView offset X [\#2519](https://github.com/danielgindi/Charts/issues/2519) +- Line not showing in LineChart [\#2518](https://github.com/danielgindi/Charts/issues/2518) +- Displaying float values in bar chart label. [\#2517](https://github.com/danielgindi/Charts/issues/2517) +- Not working with Xcode 9 Beta1 [\#2514](https://github.com/danielgindi/Charts/issues/2514) +- PieChart: Identify univocally a specific entry [\#2513](https://github.com/danielgindi/Charts/issues/2513) +- Right Align Y Value Labels for Horizontal Bar Chart [\#2512](https://github.com/danielgindi/Charts/issues/2512) +- Swift 3 Cubic line chart [\#2510](https://github.com/danielgindi/Charts/issues/2510) +- Inserting dataPoint "labels" in Radar Chart [\#2508](https://github.com/danielgindi/Charts/issues/2508) +- How to remove decimals from y values in iOS Charts? [\#2506](https://github.com/danielgindi/Charts/issues/2506) +- Add background to chart's legend [\#2505](https://github.com/danielgindi/Charts/issues/2505) +- Combine Bar, Line and Pie chart [\#2503](https://github.com/danielgindi/Charts/issues/2503) +- Chart not in centre of view [\#2502](https://github.com/danielgindi/Charts/issues/2502) +- Can't use different Charts Framework with different versions of Xcode [\#2499](https://github.com/danielgindi/Charts/issues/2499) +- How to change the label colors of certain XAxis values? [\#2498](https://github.com/danielgindi/Charts/issues/2498) +- Chart points are being clipped out in ScatterChart [\#2496](https://github.com/danielgindi/Charts/issues/2496) +- PieChart render very small [\#2495](https://github.com/danielgindi/Charts/issues/2495) +- Bar values inside bar horizontally? [\#2494](https://github.com/danielgindi/Charts/issues/2494) +- I used Charts in my iOS project and when I start to zoom the chart labels on xAxis get repeated again and again. How can I fix my problem? [\#2493](https://github.com/danielgindi/Charts/issues/2493) +- linechart shadow [\#2492](https://github.com/danielgindi/Charts/issues/2492) +- Set a fixed bar width in BarChartView [\#2491](https://github.com/danielgindi/Charts/issues/2491) +- Linechart inverted [\#2490](https://github.com/danielgindi/Charts/issues/2490) +- Pie chart not accepting more than one dataSet [\#2489](https://github.com/danielgindi/Charts/issues/2489) +- Graph x-axis values not displaying in swift 3.0 [\#2488](https://github.com/danielgindi/Charts/issues/2488) +- How to round corner in Radar Charts? [\#2487](https://github.com/danielgindi/Charts/issues/2487) +- Display header label on xAxis and yAxis [\#2485](https://github.com/danielgindi/Charts/issues/2485) +- XAxis label issue with multiple/grouped bar chart [\#2481](https://github.com/danielgindi/Charts/issues/2481) +- After integration, the project package becomes bigger. [\#2480](https://github.com/danielgindi/Charts/issues/2480) +- Pinch to Zoom is not working as expected over Bar Chart [\#2479](https://github.com/danielgindi/Charts/issues/2479) +- Two markers on one line \[LineChartView\] [\#2476](https://github.com/danielgindi/Charts/issues/2476) +- Adjust the spacing between bars. \(not grouped\) [\#2475](https://github.com/danielgindi/Charts/issues/2475) +- Issue with order of x-values and Multi LineChart [\#2474](https://github.com/danielgindi/Charts/issues/2474) +- Show Integer values on LineChart [\#2473](https://github.com/danielgindi/Charts/issues/2473) +- Loading a blank chart [\#2472](https://github.com/danielgindi/Charts/issues/2472) +- LineChart isn't shown correct [\#2471](https://github.com/danielgindi/Charts/issues/2471) +- Device Orientation not detected when using Charts module [\#2469](https://github.com/danielgindi/Charts/issues/2469) +- How to set spacing between bars? [\#2467](https://github.com/danielgindi/Charts/issues/2467) +- what happened to sliceSpace function in piechartdataset? [\#2466](https://github.com/danielgindi/Charts/issues/2466) +- How to scroll between charts on carousel [\#2465](https://github.com/danielgindi/Charts/issues/2465) +- PieChartData and NSNumberFormatter memory leak about demo project [\#2464](https://github.com/danielgindi/Charts/issues/2464) +- Custom View within the PieChart Center [\#2463](https://github.com/danielgindi/Charts/issues/2463) +- toggle highlight for pie chart slice [\#2462](https://github.com/danielgindi/Charts/issues/2462) +- HorizontalBarChartView [\#2461](https://github.com/danielgindi/Charts/issues/2461) +- Cubic Line Distorted [\#2459](https://github.com/danielgindi/Charts/issues/2459) +- Plotband support [\#2458](https://github.com/danielgindi/Charts/issues/2458) +- Bubble charts: Can i set the size same to all the bubbles? [\#2456](https://github.com/danielgindi/Charts/issues/2456) +- Single point on line chart not showing - Swift 3 [\#2455](https://github.com/danielgindi/Charts/issues/2455) +- Plotting large amount of data slows down the Graph. [\#2454](https://github.com/danielgindi/Charts/issues/2454) +- Error on Manually adding on my project [\#2453](https://github.com/danielgindi/Charts/issues/2453) +- How to implement Gantt charts using iOS-Charts? [\#2451](https://github.com/danielgindi/Charts/issues/2451) +- How come I can't set a default color theme in ChartColorTemplate.swift? [\#2450](https://github.com/danielgindi/Charts/issues/2450) +- What is relation between the BubbleSize and the axis value?Can we control the size of Bubble in Bubble Chart? [\#2448](https://github.com/danielgindi/Charts/issues/2448) +- chart 3.0 xAxis labels not mapped [\#2447](https://github.com/danielgindi/Charts/issues/2447) +- fatal error: Index out of range while subclassing renderer [\#2446](https://github.com/danielgindi/Charts/issues/2446) +- Bug in line chart yAxis when range are less than 1 [\#2445](https://github.com/danielgindi/Charts/issues/2445) +- Help with custom graphic/chart [\#2442](https://github.com/danielgindi/Charts/issues/2442) +- PieChart center Attributed Text [\#2441](https://github.com/danielgindi/Charts/issues/2441) +- PieChart center Attributed Text [\#2440](https://github.com/danielgindi/Charts/issues/2440) +- show tooltip on click [\#2438](https://github.com/danielgindi/Charts/issues/2438) +- Got Error : “\_OBJC\_CLASS\_$\_\_TtC10ChartsDemo12XYMarkerView” in Charts [\#2437](https://github.com/danielgindi/Charts/issues/2437) +- Change color label over circle [\#2436](https://github.com/danielgindi/Charts/issues/2436) +- How to set labels based on max and min value of the plot? [\#2434](https://github.com/danielgindi/Charts/issues/2434) +- How to make the pie chart selected by default? [\#2431](https://github.com/danielgindi/Charts/issues/2431) +- Animate 3 dataSets one by one [\#2428](https://github.com/danielgindi/Charts/issues/2428) +- Marker points on wrong position [\#2426](https://github.com/danielgindi/Charts/issues/2426) +- Legend leak in version 3.0.1 [\#2425](https://github.com/danielgindi/Charts/issues/2425) +- Show Two Circles in Pie Chart [\#2424](https://github.com/danielgindi/Charts/issues/2424) +- restrainViewPort is not working. Chart stays the same! [\#2423](https://github.com/danielgindi/Charts/issues/2423) +- Line Chart show value on specific coordinate [\#2420](https://github.com/danielgindi/Charts/issues/2420) +- Is it possible to extend the gesture handler? [\#2419](https://github.com/danielgindi/Charts/issues/2419) +- Memory Leak in BarChartView Data [\#2416](https://github.com/danielgindi/Charts/issues/2416) +- Track Scroll Left or Right [\#2415](https://github.com/danielgindi/Charts/issues/2415) +- How can I add the xVals to LineChartData object? [\#2412](https://github.com/danielgindi/Charts/issues/2412) +- Line chart doesn't redraw correctly after removeEntry\(\) [\#2411](https://github.com/danielgindi/Charts/issues/2411) +- Bar width [\#2410](https://github.com/danielgindi/Charts/issues/2410) +- There is no way to restrict zoom level after certain zoom level [\#2409](https://github.com/danielgindi/Charts/issues/2409) +- Half Pie Chart no full view [\#2408](https://github.com/danielgindi/Charts/issues/2408) +- How to use gradient colors for each column in a histogram? [\#2407](https://github.com/danielgindi/Charts/issues/2407) +- Fill line chart when drag with two fingers [\#2405](https://github.com/danielgindi/Charts/issues/2405) +- chartValueSelected Delegate Method Not Called [\#2404](https://github.com/danielgindi/Charts/issues/2404) +- Draw bar line even though the value is zero [\#2403](https://github.com/danielgindi/Charts/issues/2403) +- Adding line/dataset on line chart that already has a line [\#2401](https://github.com/danielgindi/Charts/issues/2401) +- help with labels [\#2400](https://github.com/danielgindi/Charts/issues/2400) +- 'Charts/Charts.h' file not found when tried build using "XCODEBUILD" command in terminal [\#2397](https://github.com/danielgindi/Charts/issues/2397) +- moveViewToX\(\) has no affect on a chart whose frame has not been set yet [\#2395](https://github.com/danielgindi/Charts/issues/2395) +- Appending Units\(i.e. m/s, mpg, etc\) to yaxis?? [\#2394](https://github.com/danielgindi/Charts/issues/2394) +- Chart Top label Issue [\#2392](https://github.com/danielgindi/Charts/issues/2392) +- How to just draw one circle value for LineChartView [\#2391](https://github.com/danielgindi/Charts/issues/2391) +- Support for 3D charts [\#2389](https://github.com/danielgindi/Charts/issues/2389) +- Y Axis range calculation is incorrect for Bar Charts [\#2386](https://github.com/danielgindi/Charts/issues/2386) +- Is having a ChartViewBase inside a custom UIView even possible? [\#2384](https://github.com/danielgindi/Charts/issues/2384) +- "chartValueSelected" is not getting called. [\#2383](https://github.com/danielgindi/Charts/issues/2383) +- Does it support XO line\(American CandleStick\)? [\#2382](https://github.com/danielgindi/Charts/issues/2382) +- Chart Won't Display [\#2381](https://github.com/danielgindi/Charts/issues/2381) +- autoScaleMinMaxEnabled Not Working [\#2374](https://github.com/danielgindi/Charts/issues/2374) +- Graph is being drawn outside of visible area [\#2373](https://github.com/danielgindi/Charts/issues/2373) +- Compile error on Release build configuration [\#2372](https://github.com/danielgindi/Charts/issues/2372) +- moveViewToX clips bar [\#2370](https://github.com/danielgindi/Charts/issues/2370) +- swift 3.x -\> New ChartMarker? [\#2369](https://github.com/danielgindi/Charts/issues/2369) +- Crash on computeAxisValues of Bar Chart [\#2368](https://github.com/danielgindi/Charts/issues/2368) +- How to properly reset zoom on data refresh? [\#2367](https://github.com/danielgindi/Charts/issues/2367) +- What is the meaning of xValue in moveViewToAnimated? [\#2366](https://github.com/danielgindi/Charts/issues/2366) +- Horizontal Bar Chart rightAxis default maximum space [\#2363](https://github.com/danielgindi/Charts/issues/2363) +- Why my LineChartDataSet's line is behind the bar? [\#2354](https://github.com/danielgindi/Charts/issues/2354) +- charts2.5 bottom line render issue [\#2352](https://github.com/danielgindi/Charts/issues/2352) +- Limit the number of bars to 10 when the x-axis is made of strings [\#2351](https://github.com/danielgindi/Charts/issues/2351) +- Not able to plot values in linechart [\#2349](https://github.com/danielgindi/Charts/issues/2349) +- Text in Marker [\#2348](https://github.com/danielgindi/Charts/issues/2348) +- PieChart overlay lines or dots for select slices in the pie chart [\#2347](https://github.com/danielgindi/Charts/issues/2347) +- Multiple colors grid background [\#2346](https://github.com/danielgindi/Charts/issues/2346) +- The direction of the two BarChart [\#2345](https://github.com/danielgindi/Charts/issues/2345) +- how to format y-axix values [\#2343](https://github.com/danielgindi/Charts/issues/2343) +- different Bar color based on values [\#2342](https://github.com/danielgindi/Charts/issues/2342) +- XCode wants to convert Chart [\#2341](https://github.com/danielgindi/Charts/issues/2341) +- Population Pyramid [\#2340](https://github.com/danielgindi/Charts/issues/2340) +- Not all labels shown on horizontal bar chart with large datasets [\#2339](https://github.com/danielgindi/Charts/issues/2339) +- Using ChartViewBase as the type and instantiating the chart later as a specific type [\#2338](https://github.com/danielgindi/Charts/issues/2338) +- Remove Highlight from bar graph [\#2337](https://github.com/danielgindi/Charts/issues/2337) +- Set diffent style to single line graph [\#2336](https://github.com/danielgindi/Charts/issues/2336) +- change the color of the highlight point [\#2334](https://github.com/danielgindi/Charts/issues/2334) +- Extra space to the right of chart [\#2333](https://github.com/danielgindi/Charts/issues/2333) +- xcode 8.3 swift 3.1 [\#2332](https://github.com/danielgindi/Charts/issues/2332) +- AxisDependencyRight Question~~ [\#2331](https://github.com/danielgindi/Charts/issues/2331) +- Module Charts not found XCODE 8.1 Error [\#2330](https://github.com/danielgindi/Charts/issues/2330) +- How to remove Grid [\#2329](https://github.com/danielgindi/Charts/issues/2329) +- The spacing between the two points is wider than the distance between the labels [\#2327](https://github.com/danielgindi/Charts/issues/2327) +- Skipped installing realm-cocoa.framework binary due to the error: [\#2326](https://github.com/danielgindi/Charts/issues/2326) +- Pie Chart view as Int instead of double on segment? [\#2325](https://github.com/danielgindi/Charts/issues/2325) +- Not able to give X axis Values [\#2324](https://github.com/danielgindi/Charts/issues/2324) +- Labels to PieChart? v 3.0.2 [\#2323](https://github.com/danielgindi/Charts/issues/2323) +- How to prevent static data sets from redrawing and hogging CPU [\#2322](https://github.com/danielgindi/Charts/issues/2322) +- BarChart xAxis labels a moving [\#2321](https://github.com/danielgindi/Charts/issues/2321) +- How to add a fade background for data values [\#2320](https://github.com/danielgindi/Charts/issues/2320) +- Limit Line after update to 3.0.2 no longer shown [\#2319](https://github.com/danielgindi/Charts/issues/2319) +- Charts v3.0.2 does not build using Carthage [\#2317](https://github.com/danielgindi/Charts/issues/2317) +- spaceMin and spaceMax are not percentages [\#2314](https://github.com/danielgindi/Charts/issues/2314) +- API for increasing or decreasing condition for CandleStick Chart [\#2311](https://github.com/danielgindi/Charts/issues/2311) +- Create Tag to include 'fix for Xcode 8.3' [\#2309](https://github.com/danielgindi/Charts/issues/2309) +- Ambiguous use of 'data' [\#2304](https://github.com/danielgindi/Charts/issues/2304) +- Default backgroundColor \(nil\) displays as black instead of clear. [\#2222](https://github.com/danielgindi/Charts/issues/2222) +- pdf report with Line Chart blurry from iphone 7 [\#2204](https://github.com/danielgindi/Charts/issues/2204) +- how to add Values to Pie Chart? and how to show complete pie chart instead of doughnut [\#2150](https://github.com/danielgindi/Charts/issues/2150) +- 'LineChartView' is unavailable: cannot find Swift declaration for this class [\#2145](https://github.com/danielgindi/Charts/issues/2145) +- Display label MMyyyy for barChart [\#2142](https://github.com/danielgindi/Charts/issues/2142) +- barSpace attribute [\#2137](https://github.com/danielgindi/Charts/issues/2137) +- Bar Chart, Shifting Y Position [\#2134](https://github.com/danielgindi/Charts/issues/2134) +- highlightValue is throwing "fatal error: Index out of range" in Combined Chart [\#2076](https://github.com/danielgindi/Charts/issues/2076) + +**Merged pull requests:** + +- Update xcode project for xcode 9 [\#2767](https://github.com/danielgindi/Charts/pull/2767) ([petester42](https://github.com/petester42)) +- Fixed value setter on PieChartDataEntry [\#2754](https://github.com/danielgindi/Charts/pull/2754) ([martnst](https://github.com/martnst)) +- Conform to macOS api changes in swift 3.2 [\#2717](https://github.com/danielgindi/Charts/pull/2717) ([ohbargain](https://github.com/ohbargain)) +- Fix CombinedChartView not draw markers [\#2702](https://github.com/danielgindi/Charts/pull/2702) ([xzysun](https://github.com/xzysun)) +- Reduce build time with minor reference refactor [\#2679](https://github.com/danielgindi/Charts/pull/2679) ([xinranw](https://github.com/xinranw)) +- Fix Typo: Probider -\> Provider [\#2650](https://github.com/danielgindi/Charts/pull/2650) ([russellbstephens](https://github.com/russellbstephens)) +- Adding a third party tutorial [\#2604](https://github.com/danielgindi/Charts/pull/2604) ([osianSmith](https://github.com/osianSmith)) +- fix \#2099, avoid crash when some chart only allow 1 data set [\#2500](https://github.com/danielgindi/Charts/pull/2500) ([liuxuan30](https://github.com/liuxuan30)) +- tutorial link added to readme [\#2484](https://github.com/danielgindi/Charts/pull/2484) ([annalizhaz](https://github.com/annalizhaz)) +- Allow turning off drag in X and Y axes separately. [\#2413](https://github.com/danielgindi/Charts/pull/2413) ([maciejtrybilo](https://github.com/maciejtrybilo)) +- Run view port jobs afterwards \(Fixes \#2395\) [\#2396](https://github.com/danielgindi/Charts/pull/2396) ([feosuna1](https://github.com/feosuna1)) +- Minor improvements in BalloonMarker.swift [\#2393](https://github.com/danielgindi/Charts/pull/2393) ([valeriyvan](https://github.com/valeriyvan)) +- remove build for ci tests procedure, use `clean test` directly [\#2388](https://github.com/danielgindi/Charts/pull/2388) ([liuxuan30](https://github.com/liuxuan30)) +- Update Travis config for Xcode 8.3 and fix test failures [\#2378](https://github.com/danielgindi/Charts/pull/2378) ([liuxuan30](https://github.com/liuxuan30)) +- Fix Simple Bar Chart Demo, switch use of x and y values [\#2365](https://github.com/danielgindi/Charts/pull/2365) ([franqueli](https://github.com/franqueli)) +- Bug fixing with one line, updating ChartViewBase.swift [\#2355](https://github.com/danielgindi/Charts/pull/2355) ([Eric0625](https://github.com/Eric0625)) +- Fixed, If the last value is the max or min, the range will be wrong [\#2229](https://github.com/danielgindi/Charts/pull/2229) ([aelam](https://github.com/aelam)) +- fix \#2222 move default backgroundColor to initialize\(\) [\#2228](https://github.com/danielgindi/Charts/pull/2228) ([liuxuan30](https://github.com/liuxuan30)) +- Fix \#1879. Similar cut in half issue in scatter chart like others [\#1891](https://github.com/danielgindi/Charts/pull/1891) ([liuxuan30](https://github.com/liuxuan30)) + +## [v3.0.2](https://github.com/danielgindi/Charts/tree/v3.0.2) (2017-04-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.2...v3.0.2) + +## [3.0.2](https://github.com/danielgindi/Charts/tree/3.0.2) (2017-04-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.1...3.0.2) + +**Implemented enhancements:** + +- Plotting Realm data in Swift. RLMResults not available [\#898](https://github.com/danielgindi/Charts/issues/898) + +**Fixed bugs:** + +- \[Bug\] Double BarChart second value text mispaced [\#1191](https://github.com/danielgindi/Charts/issues/1191) +- \: CGAffineTransformInvert: singular matrix [\#802](https://github.com/danielgindi/Charts/issues/802) + +**Closed issues:** + +- Please give option for installing via Swift Package Manager too [\#2313](https://github.com/danielgindi/Charts/issues/2313) +- Adjust spacing between axis labels and axes? [\#2310](https://github.com/danielgindi/Charts/issues/2310) +- \*PieChart\* Get color of top 3 largest percent [\#2308](https://github.com/danielgindi/Charts/issues/2308) +- Set the x axis data problems, and 2.3.0 apis are quite different.Need your help [\#2307](https://github.com/danielgindi/Charts/issues/2307) +- little issue with chart custoemView size & chart data [\#2305](https://github.com/danielgindi/Charts/issues/2305) +- hello,A small problem. [\#2303](https://github.com/danielgindi/Charts/issues/2303) +- Running 1 of 1 custom shell scripts [\#2302](https://github.com/danielgindi/Charts/issues/2302) +- Multiple warnings xCode 8.3 [\#2298](https://github.com/danielgindi/Charts/issues/2298) +- Remove color label in pie-chart [\#2297](https://github.com/danielgindi/Charts/issues/2297) +- Charts 2.3 with Swift 3 \(xCode 8.3\) [\#2295](https://github.com/danielgindi/Charts/issues/2295) +- Modify Marker before showing value [\#2294](https://github.com/danielgindi/Charts/issues/2294) +- Xcode 8.3: 62 deprecation warnings [\#2293](https://github.com/danielgindi/Charts/issues/2293) +- Fix warning for Xcode8.3 [\#2292](https://github.com/danielgindi/Charts/issues/2292) +- Chart Selected function is not called on click of every Bar. [\#2291](https://github.com/danielgindi/Charts/issues/2291) +- “Swift Language Version” [\#2290](https://github.com/danielgindi/Charts/issues/2290) +- Swift 3.1 support [\#2288](https://github.com/danielgindi/Charts/issues/2288) +- Swift 3.1 Build [\#2287](https://github.com/danielgindi/Charts/issues/2287) +- ChartTouchDelegate never called [\#2286](https://github.com/danielgindi/Charts/issues/2286) +- Radar map size setting [\#2284](https://github.com/danielgindi/Charts/issues/2284) +- How do I set the radar map size? [\#2283](https://github.com/danielgindi/Charts/issues/2283) +- Adjust circle radius for individual line chart data point [\#2282](https://github.com/danielgindi/Charts/issues/2282) +- Get current axis interval between labels [\#2281](https://github.com/danielgindi/Charts/issues/2281) +- Only allow slice space for the selected item in a pie chart [\#2278](https://github.com/danielgindi/Charts/issues/2278) +- PieChartDataSet [\#2277](https://github.com/danielgindi/Charts/issues/2277) +- I want to un-highlight a line chart when dragging has stopped, among other things. Am I missing it? Thanks [\#2276](https://github.com/danielgindi/Charts/issues/2276) +- Demo for Swift 3 [\#2274](https://github.com/danielgindi/Charts/issues/2274) +- Getting the percentage and label for a slice [\#2273](https://github.com/danielgindi/Charts/issues/2273) +- Line chart - LineChartDataSet Background color. [\#2272](https://github.com/danielgindi/Charts/issues/2272) +- place image at top of each bar in bar graph [\#2271](https://github.com/danielgindi/Charts/issues/2271) +- How to draw circle at the end of a data set on line chart [\#2270](https://github.com/danielgindi/Charts/issues/2270) +- when i install pod 'Charts'. its install Old Version Of library 2.3 and give me error convert code into latest swift. [\#2269](https://github.com/danielgindi/Charts/issues/2269) +- ChartsDemo Buildtime Error: No such module 'RealmSwift' [\#2268](https://github.com/danielgindi/Charts/issues/2268) +- Total Data [\#2267](https://github.com/danielgindi/Charts/issues/2267) +- Line Chart Highlight, Remove X axis line and display label [\#2266](https://github.com/danielgindi/Charts/issues/2266) +- Increasing bar width in grouped sets of BarChartView [\#2263](https://github.com/danielgindi/Charts/issues/2263) +- lineChart.leftAxis.startAtZeroEnabled is not available in Swift 3 library [\#2262](https://github.com/danielgindi/Charts/issues/2262) +- Can't find highlightcolor [\#2256](https://github.com/danielgindi/Charts/issues/2256) +- Custom yAxis values [\#2254](https://github.com/danielgindi/Charts/issues/2254) +- Dynamic generate Int values for axis [\#2253](https://github.com/danielgindi/Charts/issues/2253) +- viewController can't be dealloc [\#2252](https://github.com/danielgindi/Charts/issues/2252) +- How to include a gap between data points & lines [\#2251](https://github.com/danielgindi/Charts/issues/2251) +- Highlight particular X and Y coordinations in the iOS charts [\#2250](https://github.com/danielgindi/Charts/issues/2250) +- Bar shapes are overlapped with other bars [\#2248](https://github.com/danielgindi/Charts/issues/2248) +- Xaxis Label value in range \(2.5-5.0,5.0-7.5\) [\#2246](https://github.com/danielgindi/Charts/issues/2246) +- Multiline axis labels are cut off [\#2244](https://github.com/danielgindi/Charts/issues/2244) +- Problems with creating CombinedChart \(Line + grouped BarChart\) in Swift 3.0 [\#2243](https://github.com/danielgindi/Charts/issues/2243) +- Convert to Current Swift Syntax [\#2242](https://github.com/danielgindi/Charts/issues/2242) +- Line chart real time data - memory leak [\#2241](https://github.com/danielgindi/Charts/issues/2241) +- Radar chart bug - grey view shown on 6 plus and 7 plus [\#2238](https://github.com/danielgindi/Charts/issues/2238) +- How to set dual axis in line chart [\#2237](https://github.com/danielgindi/Charts/issues/2237) +- Tableview stuttering when rendering a pie chart [\#2234](https://github.com/danielgindi/Charts/issues/2234) +- Set vertical legend [\#2233](https://github.com/danielgindi/Charts/issues/2233) +- how to join XAxisLabel in MultipleBarChart under every Bar [\#2232](https://github.com/danielgindi/Charts/issues/2232) +- Custom xAxisRenderer [\#2230](https://github.com/danielgindi/Charts/issues/2230) +- demo can not run [\#2227](https://github.com/danielgindi/Charts/issues/2227) +- Change color of lineChartDataSet when chartValueSelected [\#2226](https://github.com/danielgindi/Charts/issues/2226) +- Legend Label problem when the device changes orientation [\#2224](https://github.com/danielgindi/Charts/issues/2224) +- Legend vertical offset for horizontally aligned legends [\#2223](https://github.com/danielgindi/Charts/issues/2223) +- Don't display or load all Variables on the Left of the Bar \(iOS - Swift 3\) [\#2221](https://github.com/danielgindi/Charts/issues/2221) +- Horizontal Bar Chart lines not visible with two BarChartDataSet in chart data [\#2220](https://github.com/danielgindi/Charts/issues/2220) +- Bar chart with limit line for each Bar [\#2219](https://github.com/danielgindi/Charts/issues/2219) +- why the zero can't show at the first [\#2218](https://github.com/danielgindi/Charts/issues/2218) +- About BalloonMarker [\#2216](https://github.com/danielgindi/Charts/issues/2216) +- How can I have these values in positive? Thanks. [\#2212](https://github.com/danielgindi/Charts/issues/2212) +- Line Graph is not showing line on the Chart [\#2209](https://github.com/danielgindi/Charts/issues/2209) +- Issue of enum description [\#2208](https://github.com/danielgindi/Charts/issues/2208) +- I find a issues in HorizontalBarChartView [\#2205](https://github.com/danielgindi/Charts/issues/2205) +- My ipa\(used Charts\) is 40M ;another ipa\(unused Charts\) is 13M,how to be sliming??? [\#2203](https://github.com/danielgindi/Charts/issues/2203) +- Legend vertical offset [\#2202](https://github.com/danielgindi/Charts/issues/2202) +- Charts not showing on tvOS [\#2201](https://github.com/danielgindi/Charts/issues/2201) +- Is it enable to keep the origin visible X Range when I appended more data [\#2198](https://github.com/danielgindi/Charts/issues/2198) +- Issue with Realm [\#2195](https://github.com/danielgindi/Charts/issues/2195) +- External lines - Pie Chart [\#2194](https://github.com/danielgindi/Charts/issues/2194) +- Hide labels - Pie chart [\#2193](https://github.com/danielgindi/Charts/issues/2193) +- is two sided bar graph possible ? [\#2192](https://github.com/danielgindi/Charts/issues/2192) +- Optimisation of drawing many points on line graph [\#2190](https://github.com/danielgindi/Charts/issues/2190) +- Bar Chart with dual axis [\#2188](https://github.com/danielgindi/Charts/issues/2188) +- Customize Text inside Ballon Marker [\#2186](https://github.com/danielgindi/Charts/issues/2186) +- "Shell Script Invocation Error: Command /bin/sh failed with exit code 1' [\#2185](https://github.com/danielgindi/Charts/issues/2185) +- Increase space between bars with only one dataset and assign font for specific value and xAxis label [\#2184](https://github.com/danielgindi/Charts/issues/2184) +- "noDataText" does not work [\#2179](https://github.com/danielgindi/Charts/issues/2179) +- Change color of one label [\#2178](https://github.com/danielgindi/Charts/issues/2178) +- Line Chart not show empty values - Charts 3.0 [\#2176](https://github.com/danielgindi/Charts/issues/2176) +- Bottom Label is not printing whole array list. [\#2175](https://github.com/danielgindi/Charts/issues/2175) +- Stacked Horizontal Chart Scaling [\#2174](https://github.com/danielgindi/Charts/issues/2174) +- How to set different colors for intervals on LineChart? [\#2172](https://github.com/danielgindi/Charts/issues/2172) +- Could you tell me how to forbidden line chart scroll up and down? [\#2171](https://github.com/danielgindi/Charts/issues/2171) +- Fixed BarWidth based on Pixel for BarChart [\#2170](https://github.com/danielgindi/Charts/issues/2170) +- Branch Chart3.0-Swift2.3 not found. [\#2166](https://github.com/danielgindi/Charts/issues/2166) +- "clipValuesToContentEnabled" does not work [\#2163](https://github.com/danielgindi/Charts/issues/2163) +- BarChartView with TableView [\#2161](https://github.com/danielgindi/Charts/issues/2161) +- How to show label on x-axis at regular interval and tail end on the graph line [\#2160](https://github.com/danielgindi/Charts/issues/2160) +- Set line cap to CGMutablePath [\#2159](https://github.com/danielgindi/Charts/issues/2159) +- why we set the y value 2.57,but the chart show 3,if i set y value2.44,the chart show 2.how to do the problem. [\#2157](https://github.com/danielgindi/Charts/issues/2157) +- Demo crush !!! [\#2154](https://github.com/danielgindi/Charts/issues/2154) +- Fixing the Segmentation fault issue after Convert to Swift 3.0 [\#2151](https://github.com/danielgindi/Charts/issues/2151) +- GitHub API request failed [\#2149](https://github.com/danielgindi/Charts/issues/2149) +- y-Values and x-Values as string in barchart, [\#2147](https://github.com/danielgindi/Charts/issues/2147) +- Piechart with smooth edges? [\#2146](https://github.com/danielgindi/Charts/issues/2146) +- Pie chart highlighted slice offset [\#2144](https://github.com/danielgindi/Charts/issues/2144) +- Formatter data on OS X [\#2141](https://github.com/danielgindi/Charts/issues/2141) +- How to add dates to line chart? [\#2136](https://github.com/danielgindi/Charts/issues/2136) +- 'backgroundColor' is inaccessible due to 'internal' protection level on mac OS X [\#2135](https://github.com/danielgindi/Charts/issues/2135) +- Some object files have incompatible Objective-C category definitions. Some category metadata may be lost. All files containing Objective-C categories should be built using the same compiler. [\#2133](https://github.com/danielgindi/Charts/issues/2133) +- Any Demo of all charts in Swift 3 [\#2132](https://github.com/danielgindi/Charts/issues/2132) +- How to access the Position of labels on x axis of Combined Line and Bar chart on swift\(3.0.1\) [\#2131](https://github.com/danielgindi/Charts/issues/2131) +- Wrong Limit line positioning when axisMinimum is set to 0 [\#2128](https://github.com/danielgindi/Charts/issues/2128) +- Extremely Slow compile Times on XCode 8.2.1 and swift 3.0.2 [\#2127](https://github.com/danielgindi/Charts/issues/2127) +- How to add TrackBall and edit label above BarCharts in Charts swift2 and swift 3?? [\#2126](https://github.com/danielgindi/Charts/issues/2126) +- Xcode 8.3 Compatible [\#2125](https://github.com/danielgindi/Charts/issues/2125) +- LineChartData\(dataSets: dataSets\) Missing xVals [\#2124](https://github.com/danielgindi/Charts/issues/2124) +- How to assign custom String values to XAxis? [\#2122](https://github.com/danielgindi/Charts/issues/2122) +- Simple Radar Chart causing hang / cpu 99% [\#2121](https://github.com/danielgindi/Charts/issues/2121) +- Can i use the framework without including the whole project ? [\#2118](https://github.com/danielgindi/Charts/issues/2118) +- Undefined symbols for architecture arm64 - Charts 3.0 CocoaPods [\#2117](https://github.com/danielgindi/Charts/issues/2117) +- method setlabelstoskip missing from XAxis.swift [\#2115](https://github.com/danielgindi/Charts/issues/2115) +- SocketIOClientConfiguration.swift wont compile [\#2113](https://github.com/danielgindi/Charts/issues/2113) +- No code signing identities found: No valid signing identities \(i.e. certificate and private key pair\) were found [\#2112](https://github.com/danielgindi/Charts/issues/2112) +- Can I custom draw circle in LineChart in version 3.0 ?\[help\] [\#2104](https://github.com/danielgindi/Charts/issues/2104) +- App crash XCode 8.2 Chart version 3.0 [\#2103](https://github.com/danielgindi/Charts/issues/2103) +- Charts 3.0.1 - Align x labels \(dates\) with plots [\#2094](https://github.com/danielgindi/Charts/issues/2094) +- Demo in Swift 3 [\#2092](https://github.com/danielgindi/Charts/issues/2092) +- How to set xAxis values from array in Swift 3.0 [\#2090](https://github.com/danielgindi/Charts/issues/2090) +- error to Methode [\#2089](https://github.com/danielgindi/Charts/issues/2089) +- fitBars doesnt seems to work [\#2088](https://github.com/danielgindi/Charts/issues/2088) +- oh, no!!!!!! Demo code can't run [\#2087](https://github.com/danielgindi/Charts/issues/2087) +- In BarChartView leftAxis labels cutdown, does-not fit on screen. [\#2086](https://github.com/danielgindi/Charts/issues/2086) +- accessing .rightAxis gives EXC\_BAD\_ACCESS [\#2082](https://github.com/danielgindi/Charts/issues/2082) +- leftAxis and value overlap in lineChartView [\#2080](https://github.com/danielgindi/Charts/issues/2080) +- I want to add 4 colours to the background of the chart. The colour zones depend on the y values. [\#2079](https://github.com/danielgindi/Charts/issues/2079) +- Value labels for multiple ChartDataSets all aligned at the beginning \(left\) of each bar in HorizontalBarChart [\#2077](https://github.com/danielgindi/Charts/issues/2077) +- How to Resize Labels in Pie Chart Legend [\#2075](https://github.com/danielgindi/Charts/issues/2075) +- Bar chart data entry [\#2074](https://github.com/danielgindi/Charts/issues/2074) +- How can I have a limit zone \(in android library mpandroidchart\) like feature in this iOS library [\#2073](https://github.com/danielgindi/Charts/issues/2073) +- BarChartView is unavailable, cannot find swift declaration [\#2072](https://github.com/danielgindi/Charts/issues/2072) +- Not enable to draw custom shape which is based on the XValue or YValue ? [\#2071](https://github.com/danielgindi/Charts/issues/2071) +- Can horizontalBarChartView invert the Axis ? [\#2070](https://github.com/danielgindi/Charts/issues/2070) +- can't set different padding of each side [\#2068](https://github.com/danielgindi/Charts/issues/2068) +- Area chart with missing points [\#2067](https://github.com/danielgindi/Charts/issues/2067) +- Demo code can't run [\#2066](https://github.com/danielgindi/Charts/issues/2066) +- Positioning the XAxis inconsistent with Y-axis and the Wiki in Swift 3 [\#2065](https://github.com/danielgindi/Charts/issues/2065) +- Radar chart title [\#2061](https://github.com/danielgindi/Charts/issues/2061) +- fixed increment [\#2059](https://github.com/danielgindi/Charts/issues/2059) +- Line Chart with callouts [\#2058](https://github.com/danielgindi/Charts/issues/2058) +- Delegate ChartValueSelected Not Called. [\#2057](https://github.com/danielgindi/Charts/issues/2057) +- IValueFormatter protocol not working [\#2055](https://github.com/danielgindi/Charts/issues/2055) +- "BalloonMarker“ cannot be find in my project [\#2051](https://github.com/danielgindi/Charts/issues/2051) +- How to use marker when I use CombinedChart? [\#2046](https://github.com/danielgindi/Charts/issues/2046) +- yVals have decimal point [\#2045](https://github.com/danielgindi/Charts/issues/2045) +- LeftAxis Labels will disappear [\#2044](https://github.com/danielgindi/Charts/issues/2044) +- Can't addEntry to a set in Swift 3 [\#2043](https://github.com/danielgindi/Charts/issues/2043) +- Will not compile in existing Objective-C Project. [\#2041](https://github.com/danielgindi/Charts/issues/2041) +- labels on xAxis not showing up and incorrect values on yAxis [\#2040](https://github.com/danielgindi/Charts/issues/2040) +- xAxis.valueFormatter = self create retain cycle [\#2039](https://github.com/danielgindi/Charts/issues/2039) +- Label's point of view [\#2038](https://github.com/danielgindi/Charts/issues/2038) +- How to show limited visible xValues labels? [\#2037](https://github.com/danielgindi/Charts/issues/2037) +- BarChart XAxis between Positive & Negative Values [\#2036](https://github.com/danielgindi/Charts/issues/2036) +- Error when trying to run ChartsDemo on iOS Simulator \(image not found\) [\#2035](https://github.com/danielgindi/Charts/issues/2035) +- big snap shot [\#2034](https://github.com/danielgindi/Charts/issues/2034) +- module file's minimum deployment target is ios9.3 [\#2031](https://github.com/danielgindi/Charts/issues/2031) +- Date formatter doesn't show up properly when using multiple bars in a chart. [\#2030](https://github.com/danielgindi/Charts/issues/2030) +- Y axis dynamic sampling ? [\#2029](https://github.com/danielgindi/Charts/issues/2029) +- Convert line chart entry to take dictionary [\#2027](https://github.com/danielgindi/Charts/issues/2027) +- How to set string value line \(27 Oct\) in xAxis [\#2025](https://github.com/danielgindi/Charts/issues/2025) +- Build \[ChartsDemo\] Error : 「ChartsRealm Reason: image not found 」alaway [\#2024](https://github.com/danielgindi/Charts/issues/2024) +- \[LineChartView\] setting xAxis.axisMinimum affects xAxis.spaceMin [\#2022](https://github.com/danielgindi/Charts/issues/2022) +- c vcgffrgfffgffgfgffffrfrfrrfdfdfdfdfdfdfggkjhghghghghjhjhjhjkjkjkkkklklklklikii0987654321poijkl;';lk;l; [\#2021](https://github.com/danielgindi/Charts/issues/2021) +- How to make the highlight line work with UIPanGestureRecognizer [\#2019](https://github.com/danielgindi/Charts/issues/2019) +- BarChart Issue for plotting the value on x-axis serially [\#2017](https://github.com/danielgindi/Charts/issues/2017) +- Please help me with the Pie Charts in Charts 3.0.1. [\#2016](https://github.com/danielgindi/Charts/issues/2016) +- ipa becomes larger after using Charts [\#2015](https://github.com/danielgindi/Charts/issues/2015) +- BarChartView highlight issues [\#2014](https://github.com/danielgindi/Charts/issues/2014) +- How to set up a line chart, the starting point of the distance from the left margin, border distance end points [\#2013](https://github.com/danielgindi/Charts/issues/2013) +- mult bars not show all [\#2012](https://github.com/danielgindi/Charts/issues/2012) +- how to change legend font size? [\#2011](https://github.com/danielgindi/Charts/issues/2011) +- image instead of text in CenterText in pie chart [\#2010](https://github.com/danielgindi/Charts/issues/2010) +- Change PieChart Center Color [\#2009](https://github.com/danielgindi/Charts/issues/2009) +- Demo issues [\#2008](https://github.com/danielgindi/Charts/issues/2008) +- How to display last label in X-Axis [\#2007](https://github.com/danielgindi/Charts/issues/2007) +- One point different values on the axis X [\#2005](https://github.com/danielgindi/Charts/issues/2005) +- Hide all text/labels/values in pieChart [\#2004](https://github.com/danielgindi/Charts/issues/2004) +- it is not an issue. it is related to OHLC chart [\#2003](https://github.com/danielgindi/Charts/issues/2003) +- Disable PieChart Label in Chart [\#2002](https://github.com/danielgindi/Charts/issues/2002) +- \[LineChartViewController stringForValue:axis:\] [\#2001](https://github.com/danielgindi/Charts/issues/2001) +- Values are cut out of the window [\#2000](https://github.com/danielgindi/Charts/issues/2000) +- XAxis in top AND bottom position [\#1999](https://github.com/danielgindi/Charts/issues/1999) +- Can't compile under Xcode 8.1 with Swift 3.0 [\#1998](https://github.com/danielgindi/Charts/issues/1998) +- Always display max 5 visible bars in BarChartView [\#1997](https://github.com/danielgindi/Charts/issues/1997) +- I want touchpoint in the bar to do something [\#1996](https://github.com/danielgindi/Charts/issues/1996) +- Is there any way to change chart data label from bottom of table to top? [\#1995](https://github.com/danielgindi/Charts/issues/1995) +- Installation not clear, for me [\#1994](https://github.com/danielgindi/Charts/issues/1994) +- Add space between bar chart [\#1993](https://github.com/danielgindi/Charts/issues/1993) +- How to fix the distance between each point on the X-coordinate? [\#1992](https://github.com/danielgindi/Charts/issues/1992) +- How to add tips to RadarChartView [\#1991](https://github.com/danielgindi/Charts/issues/1991) +- Piechart issue [\#1990](https://github.com/danielgindi/Charts/issues/1990) +- Multiple colors issue in stacked bar line charts swift3 [\#1989](https://github.com/danielgindi/Charts/issues/1989) +- ChartViewDelegate is not called. [\#1988](https://github.com/danielgindi/Charts/issues/1988) +- Always display vertical scrolling indicator on horizontal bar chart [\#1987](https://github.com/danielgindi/Charts/issues/1987) +- Can't compile DemoProject [\#1986](https://github.com/danielgindi/Charts/issues/1986) +- My pie chart legends still not showing [\#1985](https://github.com/danielgindi/Charts/issues/1985) +- no yValCount in ChartData [\#1982](https://github.com/danielgindi/Charts/issues/1982) +- no limitLineSegmentsBuffer in YAxisRenderer [\#1981](https://github.com/danielgindi/Charts/issues/1981) +- Legend label missing in pie chart [\#1980](https://github.com/danielgindi/Charts/issues/1980) +- For X axis the values are not adding [\#1979](https://github.com/danielgindi/Charts/issues/1979) +- When I have two data, charts shows the three data automatically [\#1978](https://github.com/danielgindi/Charts/issues/1978) +- Two legends for stacked bar chart [\#1977](https://github.com/danielgindi/Charts/issues/1977) +- X axis coordinate point spacing [\#1975](https://github.com/danielgindi/Charts/issues/1975) +- Carthage was not found [\#1974](https://github.com/danielgindi/Charts/issues/1974) +- How to Show XAxis Label On YAxis Bar In BarView Charts? [\#1973](https://github.com/danielgindi/Charts/issues/1973) +- Labels on Mac OS X application : place and title [\#1972](https://github.com/danielgindi/Charts/issues/1972) +- I am gettign @import AppKit is missing in Charts-Swift.h under charts.framework [\#1971](https://github.com/danielgindi/Charts/issues/1971) +- Multiline chart with common data point [\#1970](https://github.com/danielgindi/Charts/issues/1970) +- Version 3.0.1: Fill gradient fills out the wrong side of the chart [\#1968](https://github.com/danielgindi/Charts/issues/1968) +- How to pass data to the X axis?? [\#1967](https://github.com/danielgindi/Charts/issues/1967) +- How do I implement a legend click event? [\#1965](https://github.com/danielgindi/Charts/issues/1965) +- can't set the XVals [\#1964](https://github.com/danielgindi/Charts/issues/1964) +- Color for Legend label [\#1962](https://github.com/danielgindi/Charts/issues/1962) +- Two y axis plot on a side? [\#1961](https://github.com/danielgindi/Charts/issues/1961) +- Scrolling feature? [\#1960](https://github.com/danielgindi/Charts/issues/1960) +- Can you add the chart Of the triangle? [\#1958](https://github.com/danielgindi/Charts/issues/1958) +- Multiple y-data for single x-index [\#1955](https://github.com/danielgindi/Charts/issues/1955) +- LineChartView: axisMaximum and axisMinimum work wrong in rightAxis [\#1953](https://github.com/danielgindi/Charts/issues/1953) +- Radar Chart axis maximum [\#1952](https://github.com/danielgindi/Charts/issues/1952) +- Adding a single x-axis label for two data points. [\#1951](https://github.com/danielgindi/Charts/issues/1951) +- Adding title to X-axis and Y-axis [\#1950](https://github.com/danielgindi/Charts/issues/1950) +- Find screen location for bars in a bar chart [\#1949](https://github.com/danielgindi/Charts/issues/1949) +- \(3.0 Regression\) Scatter chart cuts off data at the edges [\#1946](https://github.com/danielgindi/Charts/issues/1946) +- How automatic showing marker? [\#1944](https://github.com/danielgindi/Charts/issues/1944) +- Right and left margins [\#1942](https://github.com/danielgindi/Charts/issues/1942) +- Displaying an overlay with extra / more detailed information on mouse hover [\#1940](https://github.com/danielgindi/Charts/issues/1940) +- Can we have flexible y Axis scale [\#1939](https://github.com/danielgindi/Charts/issues/1939) +- Charts3.0 - Can not show all the xAxis label if more than 8 value - Swift [\#1938](https://github.com/danielgindi/Charts/issues/1938) +- Barchart xAxis interval [\#1937](https://github.com/danielgindi/Charts/issues/1937) +- Avoiding chart legend [\#1936](https://github.com/danielgindi/Charts/issues/1936) +- Module compiled with Swift 2.3 cannot be imported in Swift 3.0.1 [\#1935](https://github.com/danielgindi/Charts/issues/1935) +- Charts-2.3.0/Source/ChartsRealm/Data/RealmPieData.swift:19:8: No such module 'Realm' [\#1934](https://github.com/danielgindi/Charts/issues/1934) +- iOS Demo Fails to build [\#1933](https://github.com/danielgindi/Charts/issues/1933) +- Pie chart Outside values, Inside Value and legend value [\#1932](https://github.com/danielgindi/Charts/issues/1932) +- Mermory Leak in "specialized ChartXAxisRenderer.drawLabels\(context : CGContext, pos : CGFloat, anchor : CGPoint\) -\> \(\)" [\#1928](https://github.com/danielgindi/Charts/issues/1928) +- stringForValue method return unexpected value when reload TableView data. [\#1927](https://github.com/danielgindi/Charts/issues/1927) +- Can't render CombinedChartView [\#1926](https://github.com/danielgindi/Charts/issues/1926) +- Migration to Chart 3.0, Problem with Stack BarChartView [\#1925](https://github.com/danielgindi/Charts/issues/1925) +- PieChartData issue in Swift 3 [\#1924](https://github.com/danielgindi/Charts/issues/1924) +- Values overlap for bar chart and labels of X-Axis [\#1923](https://github.com/danielgindi/Charts/issues/1923) +- Please Please Help, I can’t get Charts installed properly [\#1922](https://github.com/danielgindi/Charts/issues/1922) +- Chart bar finance \(OHLC Chart\) [\#1921](https://github.com/danielgindi/Charts/issues/1921) +- Double value cannot be converted to Int in AxisRendererBase.swift on line 125 [\#1920](https://github.com/danielgindi/Charts/issues/1920) +- Highlighted values on piechart too high? [\#1919](https://github.com/danielgindi/Charts/issues/1919) +- How to achieve this effect? [\#1918](https://github.com/danielgindi/Charts/issues/1918) +- SOLVED: Round number less than zero x values issue [\#1916](https://github.com/danielgindi/Charts/issues/1916) +- Charts does not install correctly [\#1915](https://github.com/danielgindi/Charts/issues/1915) +- Xcode 8.1 is reporting 'No such Module 'Charts' & Build/Compilation Errors [\#1914](https://github.com/danielgindi/Charts/issues/1914) +- Hide legend [\#1913](https://github.com/danielgindi/Charts/issues/1913) +- xAxis force show last label [\#1912](https://github.com/danielgindi/Charts/issues/1912) +- How to install in Xcode 7.3.1 [\#1911](https://github.com/danielgindi/Charts/issues/1911) +- Can we resurrect Chart2.2.5-Swift3.0? [\#1910](https://github.com/danielgindi/Charts/issues/1910) +- Chart Swift files not running on Obj-C XCODE8.0 install [\#1908](https://github.com/danielgindi/Charts/issues/1908) +- How to draw two circles and compare? [\#1906](https://github.com/danielgindi/Charts/issues/1906) +- custom xAxis for line chart I need an example [\#1905](https://github.com/danielgindi/Charts/issues/1905) +- QUESTION - How mask the ranges values in a Graph [\#1904](https://github.com/danielgindi/Charts/issues/1904) +- How to give xAxis customized labels for linechartview [\#1903](https://github.com/danielgindi/Charts/issues/1903) +- How to set the axis options of radar chart? [\#1902](https://github.com/danielgindi/Charts/issues/1902) +- no match color bar chart with label [\#1900](https://github.com/danielgindi/Charts/issues/1900) +- LineChartView highlightEnabled no work [\#1899](https://github.com/danielgindi/Charts/issues/1899) +- Can i change the value Above bar from double to int? [\#1898](https://github.com/danielgindi/Charts/issues/1898) +- Scrolling x-axis labels [\#1897](https://github.com/danielgindi/Charts/issues/1897) +- noDataText doesn't work on CombinedChart \(works fine on PieChart and BarChart\) [\#1896](https://github.com/danielgindi/Charts/issues/1896) +- StringForValue in class IValueFormatter receives dataSetIndex as 0 [\#1895](https://github.com/danielgindi/Charts/issues/1895) +- Cannot build in big project using cocoapods [\#1894](https://github.com/danielgindi/Charts/issues/1894) +- Carthage build error with xcode 8.1 and Charts 2.3.0 [\#1893](https://github.com/danielgindi/Charts/issues/1893) +- Unable to select BarChartView from storyboard \(iOS\) [\#1892](https://github.com/danielgindi/Charts/issues/1892) +- XAxis entry count is greater than it should be. [\#1890](https://github.com/danielgindi/Charts/issues/1890) +- pod update failed - ARC Semantic Issue [\#1888](https://github.com/danielgindi/Charts/issues/1888) +- How to show marker on y-Axis data? [\#1887](https://github.com/danielgindi/Charts/issues/1887) +- Can't building and run the ChartsDemo [\#1886](https://github.com/danielgindi/Charts/issues/1886) +- how to resolve label overlapping problem with stack bar chart [\#1885](https://github.com/danielgindi/Charts/issues/1885) +- PieChart values [\#1884](https://github.com/danielgindi/Charts/issues/1884) +- Custom marker gets displayed wrong on the latest value [\#1883](https://github.com/danielgindi/Charts/issues/1883) +- Tap gesture inside the candle bar [\#1882](https://github.com/danielgindi/Charts/issues/1882) +- rotating chartview [\#1881](https://github.com/danielgindi/Charts/issues/1881) +- \[Question\] Scatter Chart && Bubble Chart: How to show out whole radius instead of hiding half radius of first data entry? [\#1879](https://github.com/danielgindi/Charts/issues/1879) +- Horizontal bar chart dose not show all xAxis labels. [\#1878](https://github.com/danielgindi/Charts/issues/1878) +- X axis values [\#1877](https://github.com/danielgindi/Charts/issues/1877) +- Pie Chart no xAxis [\#1875](https://github.com/danielgindi/Charts/issues/1875) +- want the demo application in swift 3.0 for Charts [\#1872](https://github.com/danielgindi/Charts/issues/1872) +- Pie Bar Chart issues [\#1870](https://github.com/danielgindi/Charts/issues/1870) +- PieChartView a strange arrow [\#1869](https://github.com/danielgindi/Charts/issues/1869) +- custom gradient color of BarChatView [\#1868](https://github.com/danielgindi/Charts/issues/1868) +- Set space between labels in xAxis [\#1865](https://github.com/danielgindi/Charts/issues/1865) +- label over sample point [\#1864](https://github.com/danielgindi/Charts/issues/1864) +- Realtime Scatterplot crashes when each ChartDataEntry is added dynamically on ScatterView.data [\#1863](https://github.com/danielgindi/Charts/issues/1863) +- Assign Bar Colours Selectively [\#1862](https://github.com/danielgindi/Charts/issues/1862) +- Detect when finger leaves the chart area [\#1861](https://github.com/danielgindi/Charts/issues/1861) +- Pie chart touch event conflict [\#1860](https://github.com/danielgindi/Charts/issues/1860) +- Customize X-axis and grid lines [\#1859](https://github.com/danielgindi/Charts/issues/1859) +- Issue with candle stick when used in combined chart [\#1858](https://github.com/danielgindi/Charts/issues/1858) +- CandleStick Background Color [\#1857](https://github.com/danielgindi/Charts/issues/1857) +- Line Support Gradient Color? [\#1856](https://github.com/danielgindi/Charts/issues/1856) +- Piechart has no xAxis? [\#1855](https://github.com/danielgindi/Charts/issues/1855) +- Retain cycle setting delegate to valueFormatter [\#1854](https://github.com/danielgindi/Charts/issues/1854) +- how to show Xaxis label value as my array value [\#1852](https://github.com/danielgindi/Charts/issues/1852) +- Skip Drawing Circles for LineCharts [\#1795](https://github.com/danielgindi/Charts/issues/1795) +- Realm update [\#1789](https://github.com/danielgindi/Charts/issues/1789) +- "Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1" [\#1788](https://github.com/danielgindi/Charts/issues/1788) +- Move Realm integration to another repository [\#1756](https://github.com/danielgindi/Charts/issues/1756) +- limit line real time update [\#1755](https://github.com/danielgindi/Charts/issues/1755) +- Travis does not use github token for pull request build [\#1734](https://github.com/danielgindi/Charts/issues/1734) +- custom string value at top of bar. [\#1109](https://github.com/danielgindi/Charts/issues/1109) + +**Merged pull requests:** + +- Minor typo fix in console alert message "it's" -\> "its" [\#2301](https://github.com/danielgindi/Charts/pull/2301) ([simonbromberg](https://github.com/simonbromberg)) +- Fix Xcode 8.3 compiler warnings [\#2279](https://github.com/danielgindi/Charts/pull/2279) ([krbarnes](https://github.com/krbarnes)) +- Updated to use Realm version 2.4.3 [\#2199](https://github.com/danielgindi/Charts/pull/2199) ([kimdv](https://github.com/kimdv)) +- Fixed the inconsistency of AxisMax and AxisMin [\#2177](https://github.com/danielgindi/Charts/pull/2177) ([aelam](https://github.com/aelam)) +- Fixes index out of range crash. [\#2167](https://github.com/danielgindi/Charts/pull/2167) ([kzaher](https://github.com/kzaher)) +- remove deprecation warnings in XCode 8.3 [\#2162](https://github.com/danielgindi/Charts/pull/2162) ([LeviDahl](https://github.com/LeviDahl)) +- 'backgroundColor' is inaccessible due to 'internal' protection level … [\#2156](https://github.com/danielgindi/Charts/pull/2156) ([thierryH91200](https://github.com/thierryH91200)) +- Fixes Xcode 8.3 beta build issue [\#2116](https://github.com/danielgindi/Charts/pull/2116) ([davidarve](https://github.com/davidarve)) +- Adds NSPhotoLibraryUsageDescription to plist of ChartsDemo [\#2101](https://github.com/danielgindi/Charts/pull/2101) ([valeriyvan](https://github.com/valeriyvan)) +- Fix demo and test targets not running/testing [\#2084](https://github.com/danielgindi/Charts/pull/2084) ([petester42](https://github.com/petester42)) +- fix a typo, as orientation is horizontal by default [\#2078](https://github.com/danielgindi/Charts/pull/2078) ([liuxuan30](https://github.com/liuxuan30)) +- Update Podspec RealmSwift Dependency to 2.1.1 to be in line with Cartfile [\#2064](https://github.com/danielgindi/Charts/pull/2064) ([anttyc](https://github.com/anttyc)) +- Fix NSCopying implementation in CandleChartDataEntry [\#2056](https://github.com/danielgindi/Charts/pull/2056) ([leo150](https://github.com/leo150)) +- Add support for extensions [\#2048](https://github.com/danielgindi/Charts/pull/2048) ([raptorxcz](https://github.com/raptorxcz)) +- Update "Usage" section of README [\#1984](https://github.com/danielgindi/Charts/pull/1984) ([elaewin](https://github.com/elaewin)) +- All Charts Icons Support Swift3 \[Dub \#629, \#624, \#1261\] [\#1793](https://github.com/danielgindi/Charts/pull/1793) ([abjurato](https://github.com/abjurato)) + +## [3.0.1](https://github.com/danielgindi/Charts/tree/3.0.1) (2016-11-20) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.1...3.0.1) + +## [v3.0.1](https://github.com/danielgindi/Charts/tree/v3.0.1) (2016-11-20) +[Full Changelog](https://github.com/danielgindi/Charts/compare/2.3.1...v3.0.1) **Closed issues:** - Legend under the bar in bar Chart [\#1850](https://github.com/danielgindi/Charts/issues/1850) - MultipleBarChart barSpace does not work [\#1849](https://github.com/danielgindi/Charts/issues/1849) - Can not show decimal in y value on BarChart [\#1848](https://github.com/danielgindi/Charts/issues/1848) -- Charts 3: Horizontally scrolling BarChart in a vertically scrolling UIScrollView? [\#1847](https://github.com/danielgindi/Charts/issues/1847) - Cannot add labels to a simple Bar Chart [\#1846](https://github.com/danielgindi/Charts/issues/1846) - when running my project on iphone device but not simulator it has error"image not found" [\#1845](https://github.com/danielgindi/Charts/issues/1845) - Removing red selector cross on Line Chart nodes [\#1844](https://github.com/danielgindi/Charts/issues/1844) @@ -21,7 +1927,6 @@ - Migration to Swift 3.x [\#1836](https://github.com/danielgindi/Charts/issues/1836) - How to hide BarChart hide bottom description color & text ? [\#1835](https://github.com/danielgindi/Charts/issues/1835) - please help Line Graph not working on Charts 2.3.0 \(for Xcode8 and Swift 2.3.0\) [\#1834](https://github.com/danielgindi/Charts/issues/1834) -- it will crash when i insert data on RadarChart [\#1833](https://github.com/danielgindi/Charts/issues/1833) - Error when adding embedded binaries [\#1832](https://github.com/danielgindi/Charts/issues/1832) - X-Axis for different different charts [\#1831](https://github.com/danielgindi/Charts/issues/1831) - Setting values label [\#1829](https://github.com/danielgindi/Charts/issues/1829) @@ -74,8 +1979,11 @@ - Added a check against NaN [\#1733](https://github.com/danielgindi/Charts/pull/1733) ([Selficide](https://github.com/Selficide)) -## [v2.3.1](https://github.com/danielgindi/charts/tree/v2.3.1) (2016-11-04) -[Full Changelog](https://github.com/danielgindi/charts/compare/v3.0.0...v2.3.1) +## [2.3.1](https://github.com/danielgindi/Charts/tree/2.3.1) (2016-11-04) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.3.1...2.3.1) + +## [v2.3.1](https://github.com/danielgindi/Charts/tree/v2.3.1) (2016-11-04) +[Full Changelog](https://github.com/danielgindi/Charts/compare/3.0.0...v2.3.1) **Fixed bugs:** @@ -95,7 +2003,6 @@ - BarChartView - The first column and last column show only half? [\#1772](https://github.com/danielgindi/Charts/issues/1772) - Stacked Bar Chart Opacity of Some Colors [\#1769](https://github.com/danielgindi/Charts/issues/1769) - Custom Format YAxis [\#1768](https://github.com/danielgindi/Charts/issues/1768) -- Charts 3.0 how set xAxis gridline between bars like before? [\#1766](https://github.com/danielgindi/Charts/issues/1766) - to run ChartsDemo [\#1765](https://github.com/danielgindi/Charts/issues/1765) - There is something wrong with LineChartView,ChartDataEntry,LineChartData and ChartDataEntry [\#1764](https://github.com/danielgindi/Charts/issues/1764) - Strange margin/space in a grouped BarChart [\#1763](https://github.com/danielgindi/Charts/issues/1763) @@ -181,8 +2088,11 @@ - Updated Width Constraints - Fixes \#1770 [\#1771](https://github.com/danielgindi/Charts/pull/1771) ([SumoSimo](https://github.com/SumoSimo)) - update cocoapods [\#1684](https://github.com/danielgindi/Charts/pull/1684) ([petester42](https://github.com/petester42)) -## [v3.0.0](https://github.com/danielgindi/charts/tree/v3.0.0) (2016-10-19) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.3.0...v3.0.0) +## [3.0.0](https://github.com/danielgindi/Charts/tree/3.0.0) (2016-10-19) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v3.0.0...3.0.0) + +## [v3.0.0](https://github.com/danielgindi/Charts/tree/v3.0.0) (2016-10-19) +[Full Changelog](https://github.com/danielgindi/Charts/compare/2.3.0...v3.0.0) **Implemented enhancements:** @@ -196,7 +2106,6 @@ - Misplaced Radar Marker [\#1556](https://github.com/danielgindi/Charts/issues/1556) - fatal error: Double value cannot be converted to Int because it is either infinite or NaN [\#1550](https://github.com/danielgindi/Charts/issues/1550) - Problem with the xValue begins at 0 [\#1547](https://github.com/danielgindi/Charts/issues/1547) -- \(v3.0 + Swift3.0\)ChartView highlightValueWithX not working [\#1495](https://github.com/danielgindi/Charts/issues/1495) - \(v3.0 + Swift3.0\)LineChart crash when dataSets is a empty array [\#1491](https://github.com/danielgindi/Charts/issues/1491) - \(v3.0 + swift3.0\) charts' top are cropped/overlapped in ChartsDemo [\#1489](https://github.com/danielgindi/Charts/issues/1489) - \(v3.0 + Swift3.0\) Time Line Chart Demo crash [\#1488](https://github.com/danielgindi/Charts/issues/1488) @@ -379,8 +2288,11 @@ - Attempt to make CI more stable [\#1510](https://github.com/danielgindi/Charts/pull/1510) ([petester42](https://github.com/petester42)) - Fix Cocoapods setup being broken [\#1509](https://github.com/danielgindi/Charts/pull/1509) ([petester42](https://github.com/petester42)) -## [v2.3.0](https://github.com/danielgindi/charts/tree/v2.3.0) (2016-09-21) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.5...v2.3.0) +## [2.3.0](https://github.com/danielgindi/Charts/tree/2.3.0) (2016-09-21) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.3.0...2.3.0) + +## [v2.3.0](https://github.com/danielgindi/Charts/tree/v2.3.0) (2016-09-21) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.5...v2.3.0) **Implemented enhancements:** @@ -734,8 +2646,8 @@ - Swift 2.3 [\#1163](https://github.com/danielgindi/Charts/pull/1163) ([liuxuan30](https://github.com/liuxuan30)) - Ignoring .DS\_Store files [\#1130](https://github.com/danielgindi/Charts/pull/1130) ([einsteinx2](https://github.com/einsteinx2)) -## [v2.2.5](https://github.com/danielgindi/charts/tree/v2.2.5) (2016-05-30) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.4...v2.2.5) +## [v2.2.5](https://github.com/danielgindi/Charts/tree/v2.2.5) (2016-05-30) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.4...v2.2.5) **Implemented enhancements:** @@ -911,8 +2823,8 @@ - Some minor nits [\#913](https://github.com/danielgindi/Charts/pull/913) ([ruurd](https://github.com/ruurd)) - add a switch whether to draw limit line's labels. default is true [\#887](https://github.com/danielgindi/Charts/pull/887) ([liuxuan30](https://github.com/liuxuan30)) -## [v2.2.4](https://github.com/danielgindi/charts/tree/v2.2.4) (2016-03-31) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.3...v2.2.4) +## [v2.2.4](https://github.com/danielgindi/Charts/tree/v2.2.4) (2016-03-31) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.3...v2.2.4) **Fixed bugs:** @@ -1034,8 +2946,8 @@ - Set code signing identity for iOS targets [\#811](https://github.com/danielgindi/Charts/pull/811) ([krbarnes](https://github.com/krbarnes)) - Add trailing newline for preprocessor statement [\#795](https://github.com/danielgindi/Charts/pull/795) ([boourns](https://github.com/boourns)) -## [v2.2.3](https://github.com/danielgindi/charts/tree/v2.2.3) (2016-02-29) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.2...v2.2.3) +## [v2.2.3](https://github.com/danielgindi/Charts/tree/v2.2.3) (2016-02-29) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.2...v2.2.3) **Closed issues:** @@ -1075,8 +2987,8 @@ - Fix for cubic line chart fill when charts that don't start at x-index 0 \#711 [\#712](https://github.com/danielgindi/Charts/pull/712) ([gunterhager](https://github.com/gunterhager)) - add support for lineCap setting for line chart [\#658](https://github.com/danielgindi/Charts/pull/658) ([liuxuan30](https://github.com/liuxuan30)) -## [v2.2.2](https://github.com/danielgindi/charts/tree/v2.2.2) (2016-02-09) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.1...v2.2.2) +## [v2.2.2](https://github.com/danielgindi/Charts/tree/v2.2.2) (2016-02-09) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.1...v2.2.2) **Fixed bugs:** @@ -1093,8 +3005,11 @@ - LineChartData omits and misaligns values when data isn't continuous [\#728](https://github.com/danielgindi/Charts/issues/728) - Apache license and correct attribution in an iOS app? [\#678](https://github.com/danielgindi/Charts/issues/678) -## [v2.2.1](https://github.com/danielgindi/charts/tree/v2.2.1) (2016-02-01) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.2.0...v2.2.1) +## [v2.2.1](https://github.com/danielgindi/Charts/tree/v2.2.1) (2016-02-01) +[Full Changelog](https://github.com/danielgindi/Charts/compare/2.2.1...v2.2.1) + +## [2.2.1](https://github.com/danielgindi/Charts/tree/2.2.1) (2016-02-01) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.2.0...2.2.1) **Fixed bugs:** @@ -1118,8 +3033,8 @@ - Update podspec for realm and 2.2.0 [\#725](https://github.com/danielgindi/Charts/pull/725) ([petester42](https://github.com/petester42)) -## [v2.2.0](https://github.com/danielgindi/charts/tree/v2.2.0) (2016-01-26) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.6...v2.2.0) +## [v2.2.0](https://github.com/danielgindi/Charts/tree/v2.2.0) (2016-01-26) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.6...v2.2.0) **Fixed bugs:** @@ -1250,7 +3165,7 @@ **Merged pull requests:** -- Activate require app extension safe API to be able to use library inside an app extension [\#708](https://github.com/danielgindi/Charts/pull/708) ([adonaire-sage](https://github.com/adonaire-sage)) +- Activate require app extension safe API to be able to use library inside an app extension [\#708](https://github.com/danielgindi/Charts/pull/708) ([ghost](https://github.com/ghost)) - fix code indent problem in ChartYAxisRendererRadarChart, ChartYAxisRenderer, BarChartDataSet, RadarChartView [\#675](https://github.com/danielgindi/Charts/pull/675) ([liuxuan30](https://github.com/liuxuan30)) - add an option to set line cap of axis grid line [\#660](https://github.com/danielgindi/Charts/pull/660) ([mconintet](https://github.com/mconintet)) - Fix minor typo in BarLineChartViewBase [\#651](https://github.com/danielgindi/Charts/pull/651) ([patrickreynolds](https://github.com/patrickreynolds)) @@ -1265,11 +3180,11 @@ - Add change log file. [\#605](https://github.com/danielgindi/Charts/pull/605) ([skywinder](https://github.com/skywinder)) - add initialize dataSets in setter [\#600](https://github.com/danielgindi/Charts/pull/600) ([liuxuan30](https://github.com/liuxuan30)) - Bar chart tests [\#580](https://github.com/danielgindi/Charts/pull/580) ([alvesjtiago](https://github.com/alvesjtiago)) -- Make getBarBounds callable from Objective-C code \(Fixes \#570\) [\#571](https://github.com/danielgindi/Charts/pull/571) ([adonaire-sage](https://github.com/adonaire-sage)) +- Make getBarBounds callable from Objective-C code \(Fixes \#570\) [\#571](https://github.com/danielgindi/Charts/pull/571) ([ghost](https://github.com/ghost)) - round the float value before we cast to Int [\#558](https://github.com/danielgindi/Charts/pull/558) ([liuxuan30](https://github.com/liuxuan30)) -## [v2.1.6](https://github.com/danielgindi/charts/tree/v2.1.6) (2015-11-02) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.5...v2.1.6) +## [v2.1.6](https://github.com/danielgindi/Charts/tree/v2.1.6) (2015-11-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.5...v2.1.6) **Implemented enhancements:** @@ -1319,8 +3234,8 @@ - Approved, pending styling: Fix Scroll issue when the graph is in a UITableView [\#464](https://github.com/danielgindi/Charts/pull/464) ([coupgar](https://github.com/coupgar)) - Add ability to turn off antialias for grid lines [\#462](https://github.com/danielgindi/Charts/pull/462) ([vvit](https://github.com/vvit)) -## [v2.1.5](https://github.com/danielgindi/charts/tree/v2.1.5) (2015-10-15) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.4a...v2.1.5) +## [v2.1.5](https://github.com/danielgindi/Charts/tree/v2.1.5) (2015-10-15) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.4a...v2.1.5) **Fixed bugs:** @@ -1369,8 +3284,8 @@ - Only alow scaling further if the user can still zoom \(Fixes \#437\) [\#438](https://github.com/danielgindi/Charts/pull/438) ([iangmaia](https://github.com/iangmaia)) - Make the ChartXAxisRenderer more flexible: now possible to overwrite drawing the line or label of the ChartLimitLine [\#432](https://github.com/danielgindi/Charts/pull/432) ([pajai](https://github.com/pajai)) -## [v2.1.4a](https://github.com/danielgindi/charts/tree/v2.1.4a) (2015-10-02) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.4...v2.1.4a) +## [v2.1.4a](https://github.com/danielgindi/Charts/tree/v2.1.4a) (2015-10-02) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.4...v2.1.4a) **Fixed bugs:** @@ -1427,8 +3342,8 @@ - Add target for tvOS and get it to compile [\#392](https://github.com/danielgindi/Charts/pull/392) ([icecrystal23](https://github.com/icecrystal23)) - be explicit on how to install 'Charts' when using CocoaPods since [\#376](https://github.com/danielgindi/Charts/pull/376) ([codeHatcher](https://github.com/codeHatcher)) -## [v2.1.4](https://github.com/danielgindi/charts/tree/v2.1.4) (2015-09-21) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.3...v2.1.4) +## [v2.1.4](https://github.com/danielgindi/Charts/tree/v2.1.4) (2015-09-21) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.3...v2.1.4) **Fixed bugs:** @@ -1520,8 +3435,8 @@ - Minor refactor for BarLineChartViewBase [\#268](https://github.com/danielgindi/Charts/pull/268) ([liuxuan30](https://github.com/liuxuan30)) - Enhanced label positioning at limit lines \(enum ChartLimitLabelPosition\) [\#243](https://github.com/danielgindi/Charts/pull/243) ([SvenMuc](https://github.com/SvenMuc)) -## [v2.1.3](https://github.com/danielgindi/charts/tree/v2.1.3) (2015-08-05) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.2...v2.1.3) +## [v2.1.3](https://github.com/danielgindi/Charts/tree/v2.1.3) (2015-08-05) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.2...v2.1.3) **Closed issues:** @@ -1555,11 +3470,11 @@ - Updated podspec [\#254](https://github.com/danielgindi/Charts/pull/254) ([petester42](https://github.com/petester42)) - try to fix bar chart + Horizontal Bar chart wrong render + highlight position bug for issue \#214 and \#242. [\#248](https://github.com/danielgindi/Charts/pull/248) ([liuxuan30](https://github.com/liuxuan30)) -## [v2.1.2](https://github.com/danielgindi/charts/tree/v2.1.2) (2015-07-26) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.1...v2.1.2) +## [v2.1.2](https://github.com/danielgindi/Charts/tree/v2.1.2) (2015-07-26) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.1...v2.1.2) -## [v2.1.1](https://github.com/danielgindi/charts/tree/v2.1.1) (2015-07-26) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.1.0...v2.1.1) +## [v2.1.1](https://github.com/danielgindi/Charts/tree/v2.1.1) (2015-07-26) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.1.0...v2.1.1) **Fixed bugs:** @@ -1695,8 +3610,8 @@ - Allow access to setLabelsToSkip from Objective-C. [\#93](https://github.com/danielgindi/Charts/pull/93) ([mkubenka](https://github.com/mkubenka)) - Changing iOS deployment target to 8.0 from 8.1 [\#74](https://github.com/danielgindi/Charts/pull/74) ([michaelmcguire](https://github.com/michaelmcguire)) -## [v2.1.0](https://github.com/danielgindi/charts/tree/v2.1.0) (2015-05-05) -[Full Changelog](https://github.com/danielgindi/charts/compare/v2.0.9...v2.1.0) +## [v2.1.0](https://github.com/danielgindi/Charts/tree/v2.1.0) (2015-05-05) +[Full Changelog](https://github.com/danielgindi/Charts/compare/v2.0.9...v2.1.0) **Implemented enhancements:** @@ -1752,8 +3667,8 @@ - Shared Charts.framework scheme [\#22](https://github.com/danielgindi/Charts/pull/22) ([zenkimoto](https://github.com/zenkimoto)) - Add missing UIKit [\#20](https://github.com/danielgindi/Charts/pull/20) ([mkalmes](https://github.com/mkalmes)) -## [v2.0.9](https://github.com/danielgindi/charts/tree/v2.0.9) (2015-04-08) -[Full Changelog](https://github.com/danielgindi/charts/compare/0.0.1...v2.0.9) +## [v2.0.9](https://github.com/danielgindi/Charts/tree/v2.0.9) (2015-04-08) +[Full Changelog](https://github.com/danielgindi/Charts/compare/0.0.1...v2.0.9) **Closed issues:** @@ -1763,7 +3678,7 @@ - Added a podspec [\#13](https://github.com/danielgindi/Charts/pull/13) ([petester42](https://github.com/petester42)) -## [0.0.1](https://github.com/danielgindi/charts/tree/0.0.1) (2015-04-07) +## [0.0.1](https://github.com/danielgindi/Charts/tree/0.0.1) (2015-04-07) **Closed issues:** - Need Version to be compatible with Xcode 6.2 [\#12](https://github.com/danielgindi/Charts/issues/12) diff --git a/Cartfile b/Cartfile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Cartfile.private b/Cartfile.private index a27f21f92d..ca931038c5 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1 +1 @@ -github "facebook/ios-snapshot-test-case" "master" +github "uber/ios-snapshot-test-case" diff --git a/Cartfile.resolved b/Cartfile.resolved index e6cc748142..8f69010a98 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "facebook/ios-snapshot-test-case" "c1808fb4435ffc3db2203e7623935f39fc31aa8f" +github "uber/ios-snapshot-test-case" "6.1.0" diff --git a/Carthage.xcconfig b/Carthage.xcconfig deleted file mode 100644 index 1b9b96db98..0000000000 --- a/Carthage.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -// -// Carthage.xcconfig -// Charts -// -// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda -// A port of MPAndroidChart for iOS -// Licensed under Apache License 2.0 -// -// https://github.com/danielgindi/Charts -// - -FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(SRCROOT)/Carthage/Build/Mac/ $(inherited) -FRAMEWORK_SEARCH_PATHS[sdk=iphone*] = $(SRCROOT)/Carthage/Build/iOS/ $(inherited) -FRAMEWORK_SEARCH_PATHS[sdk=watch*] = $(SRCROOT)/Carthage/Build/watchOS/ $(inherited) -FRAMEWORK_SEARCH_PATHS[sdk=appletv*] = $(SRCROOT)/Carthage/Build/tvOS/ $(inherited) diff --git a/ChartDataTests.swift b/ChartDataTests.swift new file mode 100644 index 0000000000..4e4cdbab94 --- /dev/null +++ b/ChartDataTests.swift @@ -0,0 +1,69 @@ +// +// ChartDataTests.swift +// ChartsTests +// +// Created by Peter Kaminski on 1/23/20. +// + +import XCTest +@testable import Charts + +class ChartDataTests: XCTestCase { + + var data: ScatterChartData! + + private enum SetLabels { + static let one = "label1" + static let two = "label2" + static let three = "label3" + static let badLabel = "Bad label" + } + + override func setUp() { + super.setUp() + + let setCount = 5 + let range: UInt32 = 32 + let values1 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val) + } + let values2 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val) + } + let values3 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val) + } + + let set1 = ScatterChartDataSet(entries: values1, label: SetLabels.one) + let set2 = ScatterChartDataSet(entries: values2, label: SetLabels.two) + let set3 = ScatterChartDataSet(entries: values3, label: SetLabels.three) + + data = ScatterChartData(dataSets: [set1, set2, set3]) + } + + func testGetDataSetByLabelCaseSensitive() { + XCTAssertTrue(data.getDataSetByLabel(SetLabels.one, ignorecase: false)?.label == SetLabels.one) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.two, ignorecase: false)?.label == SetLabels.two) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.three, ignorecase: false)?.label == SetLabels.three) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.one.uppercased(), ignorecase: false) == nil) + } + + func testGetDataSetByLabelIgnoreCase() { + XCTAssertTrue(data.getDataSetByLabel(SetLabels.one, ignorecase: true)?.label == SetLabels.one) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.two, ignorecase: true)?.label == SetLabels.two) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.three, ignorecase: true)?.label == SetLabels.three) + + XCTAssertTrue(data.getDataSetByLabel(SetLabels.one.uppercased(), ignorecase: true)?.label == SetLabels.one) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.two.uppercased(), ignorecase: true)?.label == SetLabels.two) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.three.uppercased(), ignorecase: true)?.label == SetLabels.three) + } + + func testGetDataSetByLabelNilWithBadLabel() { + XCTAssertTrue(data.getDataSetByLabel(SetLabels.badLabel, ignorecase: true) == nil) + XCTAssertTrue(data.getDataSetByLabel(SetLabels.badLabel, ignorecase: false) == nil) + } +} + diff --git a/Charts.podspec b/Charts.podspec index 22d8f68630..bf0dcf37f6 100644 --- a/Charts.podspec +++ b/Charts.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Charts" - s.version = "3.0.2" + s.version = "3.4.0" s.summary = "Charts is a powerful & easy to use chart library for iOS, tvOS and OSX (and Android)" s.homepage = "https://github.com/danielgindi/Charts" s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" } @@ -10,6 +10,8 @@ Pod::Spec.new do |s| s.osx.deployment_target = "10.11" s.source = { :git => "https://github.com/danielgindi/Charts.git", :tag => "v#{s.version}" } s.default_subspec = "Core" + s.swift_version = '5.0' + s.cocoapods_version = '>= 1.5.0' s.subspec "Core" do |ss| ss.source_files = "Source/Charts/**/*.swift" diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index cd1b497477..fbc4e7478d 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -7,684 +7,714 @@ objects = { /* Begin PBXBuildFile section */ - 06165F2F1D8110E600722320 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06165F241D8110E600722320 /* Charts.framework */; }; - 06761B5E1D98176000D5CE09 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06761B5D1D98176000D5CE09 /* ChartUtilsTests.swift */; }; - 06B11FAF1D811B7000D14B02 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 06B11FAE1D811B7000D14B02 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06B120431D811B8900D14B02 /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB11D811B8900D14B02 /* Animator.swift */; }; - 06B120441D811B8900D14B02 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB21D811B8900D14B02 /* ChartAnimationEasing.swift */; }; - 06B120451D811B8900D14B02 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB41D811B8900D14B02 /* BarChartView.swift */; }; - 06B120461D811B8900D14B02 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB51D811B8900D14B02 /* BarLineChartViewBase.swift */; }; - 06B120471D811B8900D14B02 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB61D811B8900D14B02 /* BubbleChartView.swift */; }; - 06B120481D811B8900D14B02 /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB71D811B8900D14B02 /* CandleStickChartView.swift */; }; - 06B120491D811B8900D14B02 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB81D811B8900D14B02 /* ChartViewBase.swift */; }; - 06B1204A1D811B8900D14B02 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FB91D811B8900D14B02 /* CombinedChartView.swift */; }; - 06B1204B1D811B8900D14B02 /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBA1D811B8900D14B02 /* HorizontalBarChartView.swift */; }; - 06B1204C1D811B8900D14B02 /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBB1D811B8900D14B02 /* LineChartView.swift */; }; - 06B1204D1D811B8900D14B02 /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBC1D811B8900D14B02 /* PieChartView.swift */; }; - 06B1204E1D811B8900D14B02 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBD1D811B8900D14B02 /* PieRadarChartViewBase.swift */; }; - 06B1204F1D811B8900D14B02 /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBE1D811B8900D14B02 /* RadarChartView.swift */; }; - 06B120501D811B8900D14B02 /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FBF1D811B8900D14B02 /* ScatterChartView.swift */; }; - 06B120511D811B8900D14B02 /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC11D811B8900D14B02 /* AxisBase.swift */; }; - 06B120521D811B8900D14B02 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC21D811B8900D14B02 /* ChartLimitLine.swift */; }; - 06B120531D811B8900D14B02 /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC31D811B8900D14B02 /* ComponentBase.swift */; }; - 06B120541D811B8900D14B02 /* IMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC41D811B8900D14B02 /* IMarker.swift */; }; - 06B120551D811B8900D14B02 /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC51D811B8900D14B02 /* Legend.swift */; }; - 06B120561D811B8900D14B02 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC61D811B8900D14B02 /* LegendEntry.swift */; }; - 06B120571D811B8900D14B02 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC71D811B8900D14B02 /* MarkerImage.swift */; }; - 06B120581D811B8900D14B02 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC81D811B8900D14B02 /* MarkerView.swift */; }; - 06B120591D811B8900D14B02 /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FC91D811B8900D14B02 /* XAxis.swift */; }; - 06B1205A1D811B8900D14B02 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FCA1D811B8900D14B02 /* YAxis.swift */; }; - 06B1205B1D811B8900D14B02 /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FCD1D811B8900D14B02 /* ChartBaseDataSet.swift */; }; - 06B1205C1D811B8900D14B02 /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FCF1D811B8900D14B02 /* BarChartData.swift */; }; - 06B1205D1D811B8900D14B02 /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD01D811B8900D14B02 /* BarChartDataEntry.swift */; }; - 06B1205E1D811B8900D14B02 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD11D811B8900D14B02 /* BarChartDataSet.swift */; }; - 06B1205F1D811B8900D14B02 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD21D811B8900D14B02 /* BarLineScatterCandleBubbleChartData.swift */; }; - 06B120601D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD31D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataSet.swift */; }; - 06B120611D811B8900D14B02 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD41D811B8900D14B02 /* BubbleChartData.swift */; }; - 06B120621D811B8900D14B02 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD51D811B8900D14B02 /* BubbleChartDataEntry.swift */; }; - 06B120631D811B8900D14B02 /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD61D811B8900D14B02 /* BubbleChartDataSet.swift */; }; - 06B120641D811B8900D14B02 /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD71D811B8900D14B02 /* CandleChartData.swift */; }; - 06B120651D811B8900D14B02 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD81D811B8900D14B02 /* CandleChartDataEntry.swift */; }; - 06B120661D811B8900D14B02 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FD91D811B8900D14B02 /* CandleChartDataSet.swift */; }; - 06B120671D811B8900D14B02 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDA1D811B8900D14B02 /* ChartData.swift */; }; - 06B120681D811B8900D14B02 /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDB1D811B8900D14B02 /* ChartDataEntry.swift */; }; - 06B120691D811B8900D14B02 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDC1D811B8900D14B02 /* ChartDataEntryBase.swift */; }; - 06B1206A1D811B8900D14B02 /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDD1D811B8900D14B02 /* ChartDataSet.swift */; }; - 06B1206B1D811B8900D14B02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDE1D811B8900D14B02 /* CombinedChartData.swift */; }; - 06B1206C1D811B8900D14B02 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FDF1D811B8900D14B02 /* LineChartData.swift */; }; - 06B1206D1D811B8900D14B02 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE01D811B8900D14B02 /* LineChartDataSet.swift */; }; - 06B1206E1D811B8900D14B02 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE11D811B8900D14B02 /* LineRadarChartDataSet.swift */; }; - 06B1206F1D811B8900D14B02 /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE21D811B8900D14B02 /* LineScatterCandleRadarChartDataSet.swift */; }; - 06B120701D811B8900D14B02 /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE31D811B8900D14B02 /* PieChartData.swift */; }; - 06B120711D811B8900D14B02 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE41D811B8900D14B02 /* PieChartDataEntry.swift */; }; - 06B120721D811B8900D14B02 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE51D811B8900D14B02 /* PieChartDataSet.swift */; }; - 06B120731D811B8900D14B02 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE61D811B8900D14B02 /* RadarChartData.swift */; }; - 06B120741D811B8900D14B02 /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE71D811B8900D14B02 /* RadarChartDataEntry.swift */; }; - 06B120751D811B8900D14B02 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE81D811B8900D14B02 /* RadarChartDataSet.swift */; }; - 06B120761D811B8900D14B02 /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FE91D811B8900D14B02 /* ScatterChartData.swift */; }; - 06B120771D811B8900D14B02 /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FEA1D811B8900D14B02 /* ScatterChartDataSet.swift */; }; - 06B120781D811B8900D14B02 /* IBarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FEC1D811B8900D14B02 /* IBarChartDataSet.swift */; }; - 06B120791D811B8900D14B02 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FED1D811B8900D14B02 /* IBarLineScatterCandleBubbleChartDataSet.swift */; }; - 06B1207A1D811B8900D14B02 /* IBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FEE1D811B8900D14B02 /* IBubbleChartDataSet.swift */; }; - 06B1207B1D811B8900D14B02 /* ICandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FEF1D811B8900D14B02 /* ICandleChartDataSet.swift */; }; - 06B1207C1D811B8900D14B02 /* IChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF01D811B8900D14B02 /* IChartDataSet.swift */; }; - 06B1207D1D811B8900D14B02 /* ILineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF11D811B8900D14B02 /* ILineChartDataSet.swift */; }; - 06B1207E1D811B8900D14B02 /* ILineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF21D811B8900D14B02 /* ILineRadarChartDataSet.swift */; }; - 06B1207F1D811B8900D14B02 /* ILineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF31D811B8900D14B02 /* ILineScatterCandleRadarChartDataSet.swift */; }; - 06B120801D811B8900D14B02 /* IPieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF41D811B8900D14B02 /* IPieChartDataSet.swift */; }; - 06B120811D811B8900D14B02 /* IRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF51D811B8900D14B02 /* IRadarChartDataSet.swift */; }; - 06B120821D811B8900D14B02 /* IScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF61D811B8900D14B02 /* IScatterChartDataSet.swift */; }; - 06B120831D811B8900D14B02 /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FF81D811B8900D14B02 /* DataApproximator.swift */; }; - 06B120841D811B8900D14B02 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFA1D811B8900D14B02 /* DefaultAxisValueFormatter.swift */; }; - 06B120851D811B8900D14B02 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFB1D811B8900D14B02 /* DefaultFillFormatter.swift */; }; - 06B120861D811B8900D14B02 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFC1D811B8900D14B02 /* DefaultValueFormatter.swift */; }; - 06B120871D811B8900D14B02 /* IAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFD1D811B8900D14B02 /* IAxisValueFormatter.swift */; }; - 06B120881D811B8900D14B02 /* IFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFE1D811B8900D14B02 /* IFillFormatter.swift */; }; - 06B120891D811B8900D14B02 /* IValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B11FFF1D811B8900D14B02 /* IValueFormatter.swift */; }; - 06B1208A1D811B8900D14B02 /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120011D811B8900D14B02 /* BarHighlighter.swift */; }; - 06B1208B1D811B8900D14B02 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120021D811B8900D14B02 /* ChartHighlighter.swift */; }; - 06B1208C1D811B8900D14B02 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120031D811B8900D14B02 /* CombinedHighlighter.swift */; }; - 06B1208D1D811B8900D14B02 /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120041D811B8900D14B02 /* Highlight.swift */; }; - 06B1208E1D811B8900D14B02 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120051D811B8900D14B02 /* HorizontalBarHighlighter.swift */; }; - 06B1208F1D811B8900D14B02 /* IHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120061D811B8900D14B02 /* IHighlighter.swift */; }; - 06B120901D811B8900D14B02 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120071D811B8900D14B02 /* PieHighlighter.swift */; }; - 06B120911D811B8900D14B02 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120081D811B8900D14B02 /* PieRadarHighlighter.swift */; }; - 06B120921D811B8900D14B02 /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120091D811B8900D14B02 /* RadarHighlighter.swift */; }; - 06B120931D811B8900D14B02 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1200A1D811B8900D14B02 /* Range.swift */; }; - 06B120941D811B8900D14B02 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1200C1D811B8900D14B02 /* BarChartDataProvider.swift */; }; - 06B120951D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1200D1D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; - 06B120961D811B8900D14B02 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1200E1D811B8900D14B02 /* BubbleChartDataProvider.swift */; }; - 06B120971D811B8900D14B02 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1200F1D811B8900D14B02 /* CandleChartDataProvider.swift */; }; - 06B120981D811B8900D14B02 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120101D811B8900D14B02 /* ChartDataProvider.swift */; }; - 06B120991D811B8900D14B02 /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120111D811B8900D14B02 /* CombinedChartDataProvider.swift */; }; - 06B1209A1D811B8900D14B02 /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120121D811B8900D14B02 /* LineChartDataProvider.swift */; }; - 06B1209B1D811B8900D14B02 /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120131D811B8900D14B02 /* ScatterChartDataProvider.swift */; }; - 06B1209C1D811B8900D14B02 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120151D811B8900D14B02 /* AnimatedMoveViewJob.swift */; }; - 06B1209D1D811B8900D14B02 /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120161D811B8900D14B02 /* AnimatedViewPortJob.swift */; }; - 06B1209E1D811B8900D14B02 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120171D811B8900D14B02 /* AnimatedZoomViewJob.swift */; }; - 06B1209F1D811B8900D14B02 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120181D811B8900D14B02 /* MoveViewJob.swift */; }; - 06B120A01D811B8900D14B02 /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120191D811B8900D14B02 /* ViewPortJob.swift */; }; - 06B120A11D811B8900D14B02 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1201A1D811B8900D14B02 /* ZoomViewJob.swift */; }; - 06B120A21D811B8900D14B02 /* AxisRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1201C1D811B8900D14B02 /* AxisRendererBase.swift */; }; - 06B120A31D811B8900D14B02 /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1201D1D811B8900D14B02 /* BarChartRenderer.swift */; }; - 06B120A41D811B8900D14B02 /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1201E1D811B8900D14B02 /* BarLineScatterCandleBubbleRenderer.swift */; }; - 06B120A51D811B8900D14B02 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1201F1D811B8900D14B02 /* BubbleChartRenderer.swift */; }; - 06B120A61D811B8900D14B02 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120201D811B8900D14B02 /* CandleStickChartRenderer.swift */; }; - 06B120A71D811B8900D14B02 /* ChartDataRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120211D811B8900D14B02 /* ChartDataRendererBase.swift */; }; - 06B120A81D811B8900D14B02 /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120221D811B8900D14B02 /* CombinedChartRenderer.swift */; }; - 06B120A91D811B8900D14B02 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120231D811B8900D14B02 /* HorizontalBarChartRenderer.swift */; }; - 06B120AA1D811B8900D14B02 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120241D811B8900D14B02 /* LegendRenderer.swift */; }; - 06B120AB1D811B8900D14B02 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120251D811B8900D14B02 /* LineChartRenderer.swift */; }; - 06B120AC1D811B8900D14B02 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120261D811B8900D14B02 /* LineRadarRenderer.swift */; }; - 06B120AD1D811B8900D14B02 /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120271D811B8900D14B02 /* LineScatterCandleRadarRenderer.swift */; }; - 06B120AE1D811B8900D14B02 /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120281D811B8900D14B02 /* PieChartRenderer.swift */; }; - 06B120AF1D811B8900D14B02 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120291D811B8900D14B02 /* RadarChartRenderer.swift */; }; - 06B120B01D811B8900D14B02 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1202A1D811B8900D14B02 /* Renderer.swift */; }; - 06B120B11D811B8900D14B02 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1202C1D811B8900D14B02 /* ChevronDownShapeRenderer.swift */; }; - 06B120B21D811B8900D14B02 /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1202D1D811B8900D14B02 /* ChevronUpShapeRenderer.swift */; }; - 06B120B31D811B8900D14B02 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1202E1D811B8900D14B02 /* CircleShapeRenderer.swift */; }; - 06B120B41D811B8900D14B02 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1202F1D811B8900D14B02 /* CrossShapeRenderer.swift */; }; - 06B120B51D811B8900D14B02 /* IShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120301D811B8900D14B02 /* IShapeRenderer.swift */; }; - 06B120B61D811B8900D14B02 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120311D811B8900D14B02 /* SquareShapeRenderer.swift */; }; - 06B120B71D811B8900D14B02 /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120321D811B8900D14B02 /* TriangleShapeRenderer.swift */; }; - 06B120B81D811B8900D14B02 /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120331D811B8900D14B02 /* XShapeRenderer.swift */; }; - 06B120B91D811B8900D14B02 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120341D811B8900D14B02 /* ScatterChartRenderer.swift */; }; - 06B120BA1D811B8900D14B02 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120351D811B8900D14B02 /* XAxisRenderer.swift */; }; - 06B120BB1D811B8900D14B02 /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120361D811B8900D14B02 /* XAxisRendererHorizontalBarChart.swift */; }; - 06B120BC1D811B8900D14B02 /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120371D811B8900D14B02 /* XAxisRendererRadarChart.swift */; }; - 06B120BD1D811B8900D14B02 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120381D811B8900D14B02 /* YAxisRenderer.swift */; }; - 06B120BE1D811B8900D14B02 /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120391D811B8900D14B02 /* YAxisRendererHorizontalBarChart.swift */; }; - 06B120BF1D811B8900D14B02 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1203A1D811B8900D14B02 /* YAxisRendererRadarChart.swift */; }; - 06B120C01D811B8900D14B02 /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1203C1D811B8900D14B02 /* ChartColorTemplates.swift */; }; - 06B120C11D811B8900D14B02 /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1203D1D811B8900D14B02 /* ChartUtils.swift */; }; - 06B120C21D811B8900D14B02 /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1203E1D811B8900D14B02 /* Fill.swift */; }; - 06B120C31D811B8900D14B02 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B1203F1D811B8900D14B02 /* Platform.swift */; }; - 06B120C41D811B8900D14B02 /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120401D811B8900D14B02 /* Transformer.swift */; }; - 06B120C51D811B8900D14B02 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120411D811B8900D14B02 /* TransformerHorizontalBarChart.swift */; }; - 06B120C61D811B8900D14B02 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B120421D811B8900D14B02 /* ViewPortHandler.swift */; }; - 06B3C0F71D99F85400B1DF43 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B3C0F31D99F85400B1DF43 /* BarChartTests.swift */; }; - 06B3C0F81D99F85400B1DF43 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B3C0F41D99F85400B1DF43 /* LineChartTests.swift */; }; - 5B56A9CD1D905EB300F58178 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B56A9CC1D905EB300F58178 /* Description.swift */; }; - 5BF8813B1DDC4DF70033370C /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF8813A1DDC4DF70033370C /* IndexAxisValueFormatter.swift */; }; - D8A58A411DCE2EF8007BB012 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D8A58A401DCE2EF8007BB012 /* Media.xcassets */; }; + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; + 03960E8148C6AEDACE4B77CC /* IMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* IMarker.swift */; }; + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */; }; + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064989451F5C99C7006E8BB3 /* Snapshot.swift */; }; + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; + 0D8A89398F9BD5DCC8D7F976 /* ICandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */; }; + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; + 1311BEC21E9CC264E971EFAF /* ILineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */; }; + 135F11CE20425AF600D655A3 /* PieChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135F11CD20425AF600D655A3 /* PieChartTests.swift */; }; + 146EE16342C2BADC92E45BF2 /* ILineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */; }; + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; + 203A39685CC96FC625F616E4 /* IHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* IHighlighter.swift */; }; + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; + 224EFF991FBAAC4700CF9B3B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */; }; + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCD13D558BA177D5952AD66 /* PieChartView.swift */; }; + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */; }; + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */; }; + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; + 2C40CFFC8D88BEA70E0A50B0 /* IBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */; }; + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */; }; + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */; }; + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0108D5925E21A47DA36A66AA /* BarChartData.swift */; }; + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */; }; + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274116834B1B0345D622E027 /* CandleChartDataSet.swift */; }; + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */; }; + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543729805D897CC03E5F78D3 /* BarHighlighter.swift */; }; + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6227A646166E248F90F86AD /* ChartColorTemplates.swift */; }; + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */; }; + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */; }; + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */; }; + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */; }; + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */; }; + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; + 50476F8E6662CAFC1EFE0723 /* IScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */; }; + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */; }; + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */; }; + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */; }; + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */; }; + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */; }; + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */; }; + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */; }; + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A140F644332704916947B58C /* CombinedChartDataProvider.swift */; }; + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */; }; + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */; }; + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7036F11832C017E26AC750A4 /* PieHighlighter.swift */; }; + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D64616883374310C505EC39 /* Highlight.swift */; }; + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */; }; + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */; }; + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D8013D44629521B1746364 /* PieChartRenderer.swift */; }; + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */; }; + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */; }; + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */; }; + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */; }; + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0619A877C69A95ECCC440A44 /* LineChartView.swift */; }; + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; + 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; + 83BBAF3EDC31FD452F8BF1DB /* IRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */; }; + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; + 8A9FF54E2075A9047CC8E953 /* IShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */; }; + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */; }; + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48164CCD83C51B496533CB77 /* MarkerView.swift */; }; + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */; }; + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */; }; + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */; }; + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */; }; + 97AD2D4620AF917100F9C24A /* Platform+Accessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97AD2D4520AF917100F9C24A /* Platform+Accessibility.swift */; }; + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */; }; + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; + 9A26C8DB1F87B01700367599 /* DataApproximator+N.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A26C8DA1F87B01700367599 /* DataApproximator+N.swift */; }; + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; + A40ACF0CCE96EEE104B0463D /* IValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */; }; + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; + AF4AAF3709ED9DDF6362EAE8 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */; }; + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; + B13C74B4FF705D7B595D01EF /* IAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */; }; + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; + B66817462241E3CC00017CF1 /* HorizontalBarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B66817452241E3CC00017CF1 /* HorizontalBarChartTests.swift */; }; + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; + B6C9F450D937B87224D29D5C /* IFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */; }; + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C03E6D8123DAAB2600083010 /* ChartDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03E6D8023DAAB2600083010 /* ChartDataTests.swift */; }; + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */; }; + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */; }; + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; + C3F0DDB7F0A922F0BB7EDB8A /* IBarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */; }; + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; + C9AA360A2355F01F00C97D93 /* Platform+Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9AA36092355F01F00C97D93 /* Platform+Color.swift */; }; + C9F3DC262355F791000C3215 /* Platform+Graphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F3DC242355F791000C3215 /* Platform+Graphics.swift */; }; + C9F3DC272355F791000C3215 /* Platform+Gestures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F3DC252355F791000C3215 /* Platform+Gestures.swift */; }; + C9F3DC292355FA2F000C3215 /* Platform+Touch Handling.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F3DC282355FA2F000C3215 /* Platform+Touch Handling.swift */; }; + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */; }; + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E783CFB4889A767C76510917 /* BarChartView.swift */; }; + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5983826927D825EF5F855C28 /* ChartHighlighter.swift */; }; + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */; }; + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3976E5F9D60E30CD94CE6156 /* Animator.swift */; }; + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = B137428B41C143D5115726C4 /* Description.swift */; }; + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4785FEACAE4367F36FB8868 /* CandleChartData.swift */; }; + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF475B9593B9898853814340 /* Transformer.swift */; }; + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */; }; + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; + E8F0F4F47CD7D72B4EE5A794 /* IChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* IChartDataSet.swift */; }; + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; + ECECC58CEF03B1718F8267E8 /* AxisRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRendererBase.swift */; }; + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; + F37B07008B8AE7F3909FFB9C /* ChartDataRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */; }; + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; + F941C88BF814DF51C465CB95 /* ILineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */; }; + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; + FAAD9FF6565DED2652188584 /* IPieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */; }; + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 06165F301D8110E600722320 /* PBXContainerItemProxy */ = { + C2005F425A98942473657ED2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 06165F1B1D8110E600722320 /* Project object */; + containerPortal = 193FC8DF32D250560C5F5D77 /* Project object */; proxyType = 1; - remoteGlobalIDString = 06165F231D8110E600722320; + remoteGlobalIDString = A58A4ED274A941CA248EA921; remoteInfo = Charts; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 06165F241D8110E600722320 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 06165F2E1D8110E600722320 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 063FF0401D8CC9940094A042 /* Carthage.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Carthage.xcconfig; sourceTree = ""; }; - 06761B5D1D98176000D5CE09 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = SOURCE_ROOT; }; - 06B11FAC1D811B6600D14B02 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; - 06B11FAE1D811B7000D14B02 /* Charts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; - 06B11FB11D811B8900D14B02 /* Animator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Animator.swift; sourceTree = ""; }; - 06B11FB21D811B8900D14B02 /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartAnimationEasing.swift; sourceTree = ""; }; - 06B11FB41D811B8900D14B02 /* BarChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartView.swift; sourceTree = ""; }; - 06B11FB51D811B8900D14B02 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarLineChartViewBase.swift; sourceTree = ""; }; - 06B11FB61D811B8900D14B02 /* BubbleChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartView.swift; sourceTree = ""; }; - 06B11FB71D811B8900D14B02 /* CandleStickChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleStickChartView.swift; sourceTree = ""; }; - 06B11FB81D811B8900D14B02 /* ChartViewBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartViewBase.swift; sourceTree = ""; }; - 06B11FB91D811B8900D14B02 /* CombinedChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedChartView.swift; sourceTree = ""; }; - 06B11FBA1D811B8900D14B02 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalBarChartView.swift; sourceTree = ""; }; - 06B11FBB1D811B8900D14B02 /* LineChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartView.swift; sourceTree = ""; }; - 06B11FBC1D811B8900D14B02 /* PieChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartView.swift; sourceTree = ""; }; - 06B11FBD1D811B8900D14B02 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieRadarChartViewBase.swift; sourceTree = ""; }; - 06B11FBE1D811B8900D14B02 /* RadarChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarChartView.swift; sourceTree = ""; }; - 06B11FBF1D811B8900D14B02 /* ScatterChartView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterChartView.swift; sourceTree = ""; }; - 06B11FC11D811B8900D14B02 /* AxisBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AxisBase.swift; sourceTree = ""; }; - 06B11FC21D811B8900D14B02 /* ChartLimitLine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartLimitLine.swift; sourceTree = ""; }; - 06B11FC31D811B8900D14B02 /* ComponentBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComponentBase.swift; sourceTree = ""; }; - 06B11FC41D811B8900D14B02 /* IMarker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMarker.swift; sourceTree = ""; }; - 06B11FC51D811B8900D14B02 /* Legend.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Legend.swift; sourceTree = ""; }; - 06B11FC61D811B8900D14B02 /* LegendEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegendEntry.swift; sourceTree = ""; }; - 06B11FC71D811B8900D14B02 /* MarkerImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkerImage.swift; sourceTree = ""; }; - 06B11FC81D811B8900D14B02 /* MarkerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkerView.swift; sourceTree = ""; }; - 06B11FC91D811B8900D14B02 /* XAxis.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XAxis.swift; sourceTree = ""; }; - 06B11FCA1D811B8900D14B02 /* YAxis.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YAxis.swift; sourceTree = ""; }; - 06B11FCD1D811B8900D14B02 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartBaseDataSet.swift; sourceTree = ""; }; - 06B11FCF1D811B8900D14B02 /* BarChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartData.swift; sourceTree = ""; }; - 06B11FD01D811B8900D14B02 /* BarChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartDataEntry.swift; sourceTree = ""; }; - 06B11FD11D811B8900D14B02 /* BarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartDataSet.swift; sourceTree = ""; }; - 06B11FD21D811B8900D14B02 /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; - 06B11FD31D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; - 06B11FD41D811B8900D14B02 /* BubbleChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartData.swift; sourceTree = ""; }; - 06B11FD51D811B8900D14B02 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartDataEntry.swift; sourceTree = ""; }; - 06B11FD61D811B8900D14B02 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartDataSet.swift; sourceTree = ""; }; - 06B11FD71D811B8900D14B02 /* CandleChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleChartData.swift; sourceTree = ""; }; - 06B11FD81D811B8900D14B02 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleChartDataEntry.swift; sourceTree = ""; }; - 06B11FD91D811B8900D14B02 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleChartDataSet.swift; sourceTree = ""; }; - 06B11FDA1D811B8900D14B02 /* ChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartData.swift; sourceTree = ""; }; - 06B11FDB1D811B8900D14B02 /* ChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartDataEntry.swift; sourceTree = ""; }; - 06B11FDC1D811B8900D14B02 /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartDataEntryBase.swift; sourceTree = ""; }; - 06B11FDD1D811B8900D14B02 /* ChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartDataSet.swift; sourceTree = ""; }; - 06B11FDE1D811B8900D14B02 /* CombinedChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedChartData.swift; sourceTree = ""; }; - 06B11FDF1D811B8900D14B02 /* LineChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartData.swift; sourceTree = ""; }; - 06B11FE01D811B8900D14B02 /* LineChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartDataSet.swift; sourceTree = ""; }; - 06B11FE11D811B8900D14B02 /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRadarChartDataSet.swift; sourceTree = ""; }; - 06B11FE21D811B8900D14B02 /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; - 06B11FE31D811B8900D14B02 /* PieChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartData.swift; sourceTree = ""; }; - 06B11FE41D811B8900D14B02 /* PieChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartDataEntry.swift; sourceTree = ""; }; - 06B11FE51D811B8900D14B02 /* PieChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartDataSet.swift; sourceTree = ""; }; - 06B11FE61D811B8900D14B02 /* RadarChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarChartData.swift; sourceTree = ""; }; - 06B11FE71D811B8900D14B02 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarChartDataEntry.swift; sourceTree = ""; }; - 06B11FE81D811B8900D14B02 /* RadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarChartDataSet.swift; sourceTree = ""; }; - 06B11FE91D811B8900D14B02 /* ScatterChartData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterChartData.swift; sourceTree = ""; }; - 06B11FEA1D811B8900D14B02 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterChartDataSet.swift; sourceTree = ""; }; - 06B11FEC1D811B8900D14B02 /* IBarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IBarChartDataSet.swift; sourceTree = ""; }; - 06B11FED1D811B8900D14B02 /* IBarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IBarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; - 06B11FEE1D811B8900D14B02 /* IBubbleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IBubbleChartDataSet.swift; sourceTree = ""; }; - 06B11FEF1D811B8900D14B02 /* ICandleChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ICandleChartDataSet.swift; sourceTree = ""; }; - 06B11FF01D811B8900D14B02 /* IChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IChartDataSet.swift; sourceTree = ""; }; - 06B11FF11D811B8900D14B02 /* ILineChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ILineChartDataSet.swift; sourceTree = ""; }; - 06B11FF21D811B8900D14B02 /* ILineRadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ILineRadarChartDataSet.swift; sourceTree = ""; }; - 06B11FF31D811B8900D14B02 /* ILineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ILineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; - 06B11FF41D811B8900D14B02 /* IPieChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IPieChartDataSet.swift; sourceTree = ""; }; - 06B11FF51D811B8900D14B02 /* IRadarChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IRadarChartDataSet.swift; sourceTree = ""; }; - 06B11FF61D811B8900D14B02 /* IScatterChartDataSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IScatterChartDataSet.swift; sourceTree = ""; }; - 06B11FF81D811B8900D14B02 /* DataApproximator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataApproximator.swift; sourceTree = ""; }; - 06B11FFA1D811B8900D14B02 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultAxisValueFormatter.swift; sourceTree = ""; }; - 06B11FFB1D811B8900D14B02 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultFillFormatter.swift; sourceTree = ""; }; - 06B11FFC1D811B8900D14B02 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultValueFormatter.swift; sourceTree = ""; }; - 06B11FFD1D811B8900D14B02 /* IAxisValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IAxisValueFormatter.swift; sourceTree = ""; }; - 06B11FFE1D811B8900D14B02 /* IFillFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IFillFormatter.swift; sourceTree = ""; }; - 06B11FFF1D811B8900D14B02 /* IValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IValueFormatter.swift; sourceTree = ""; }; - 06B120011D811B8900D14B02 /* BarHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarHighlighter.swift; sourceTree = ""; }; - 06B120021D811B8900D14B02 /* ChartHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartHighlighter.swift; sourceTree = ""; }; - 06B120031D811B8900D14B02 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedHighlighter.swift; sourceTree = ""; }; - 06B120041D811B8900D14B02 /* Highlight.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Highlight.swift; sourceTree = ""; }; - 06B120051D811B8900D14B02 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalBarHighlighter.swift; sourceTree = ""; }; - 06B120061D811B8900D14B02 /* IHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IHighlighter.swift; sourceTree = ""; }; - 06B120071D811B8900D14B02 /* PieHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieHighlighter.swift; sourceTree = ""; }; - 06B120081D811B8900D14B02 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieRadarHighlighter.swift; sourceTree = ""; }; - 06B120091D811B8900D14B02 /* RadarHighlighter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarHighlighter.swift; sourceTree = ""; }; - 06B1200A1D811B8900D14B02 /* Range.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Range.swift; sourceTree = ""; }; - 06B1200C1D811B8900D14B02 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartDataProvider.swift; sourceTree = ""; }; - 06B1200D1D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; - 06B1200E1D811B8900D14B02 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartDataProvider.swift; sourceTree = ""; }; - 06B1200F1D811B8900D14B02 /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleChartDataProvider.swift; sourceTree = ""; }; - 06B120101D811B8900D14B02 /* ChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartDataProvider.swift; sourceTree = ""; }; - 06B120111D811B8900D14B02 /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedChartDataProvider.swift; sourceTree = ""; }; - 06B120121D811B8900D14B02 /* LineChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartDataProvider.swift; sourceTree = ""; }; - 06B120131D811B8900D14B02 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterChartDataProvider.swift; sourceTree = ""; }; - 06B120151D811B8900D14B02 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedMoveViewJob.swift; sourceTree = ""; }; - 06B120161D811B8900D14B02 /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedViewPortJob.swift; sourceTree = ""; }; - 06B120171D811B8900D14B02 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedZoomViewJob.swift; sourceTree = ""; }; - 06B120181D811B8900D14B02 /* MoveViewJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoveViewJob.swift; sourceTree = ""; }; - 06B120191D811B8900D14B02 /* ViewPortJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewPortJob.swift; sourceTree = ""; }; - 06B1201A1D811B8900D14B02 /* ZoomViewJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomViewJob.swift; sourceTree = ""; }; - 06B1201C1D811B8900D14B02 /* AxisRendererBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AxisRendererBase.swift; sourceTree = ""; }; - 06B1201D1D811B8900D14B02 /* BarChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartRenderer.swift; sourceTree = ""; }; - 06B1201E1D811B8900D14B02 /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; - 06B1201F1D811B8900D14B02 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BubbleChartRenderer.swift; sourceTree = ""; }; - 06B120201D811B8900D14B02 /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CandleStickChartRenderer.swift; sourceTree = ""; }; - 06B120211D811B8900D14B02 /* ChartDataRendererBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartDataRendererBase.swift; sourceTree = ""; }; - 06B120221D811B8900D14B02 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedChartRenderer.swift; sourceTree = ""; }; - 06B120231D811B8900D14B02 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalBarChartRenderer.swift; sourceTree = ""; }; - 06B120241D811B8900D14B02 /* LegendRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegendRenderer.swift; sourceTree = ""; }; - 06B120251D811B8900D14B02 /* LineChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartRenderer.swift; sourceTree = ""; }; - 06B120261D811B8900D14B02 /* LineRadarRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRadarRenderer.swift; sourceTree = ""; }; - 06B120271D811B8900D14B02 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; - 06B120281D811B8900D14B02 /* PieChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartRenderer.swift; sourceTree = ""; }; - 06B120291D811B8900D14B02 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarChartRenderer.swift; sourceTree = ""; }; - 06B1202A1D811B8900D14B02 /* Renderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Renderer.swift; sourceTree = ""; }; - 06B1202C1D811B8900D14B02 /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChevronDownShapeRenderer.swift; sourceTree = ""; }; - 06B1202D1D811B8900D14B02 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChevronUpShapeRenderer.swift; sourceTree = ""; }; - 06B1202E1D811B8900D14B02 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircleShapeRenderer.swift; sourceTree = ""; }; - 06B1202F1D811B8900D14B02 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossShapeRenderer.swift; sourceTree = ""; }; - 06B120301D811B8900D14B02 /* IShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IShapeRenderer.swift; sourceTree = ""; }; - 06B120311D811B8900D14B02 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SquareShapeRenderer.swift; sourceTree = ""; }; - 06B120321D811B8900D14B02 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TriangleShapeRenderer.swift; sourceTree = ""; }; - 06B120331D811B8900D14B02 /* XShapeRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XShapeRenderer.swift; sourceTree = ""; }; - 06B120341D811B8900D14B02 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterChartRenderer.swift; sourceTree = ""; }; - 06B120351D811B8900D14B02 /* XAxisRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XAxisRenderer.swift; sourceTree = ""; }; - 06B120361D811B8900D14B02 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - 06B120371D811B8900D14B02 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XAxisRendererRadarChart.swift; sourceTree = ""; }; - 06B120381D811B8900D14B02 /* YAxisRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YAxisRenderer.swift; sourceTree = ""; }; - 06B120391D811B8900D14B02 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - 06B1203A1D811B8900D14B02 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YAxisRendererRadarChart.swift; sourceTree = ""; }; - 06B1203C1D811B8900D14B02 /* ChartColorTemplates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartColorTemplates.swift; sourceTree = ""; }; - 06B1203D1D811B8900D14B02 /* ChartUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartUtils.swift; sourceTree = ""; }; - 06B1203E1D811B8900D14B02 /* Fill.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Fill.swift; sourceTree = ""; }; - 06B1203F1D811B8900D14B02 /* Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.swift; sourceTree = ""; }; - 06B120401D811B8900D14B02 /* Transformer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Transformer.swift; sourceTree = ""; }; - 06B120411D811B8900D14B02 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransformerHorizontalBarChart.swift; sourceTree = ""; }; - 06B120421D811B8900D14B02 /* ViewPortHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewPortHandler.swift; sourceTree = ""; }; - 06B121111D81201C00D14B02 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = SOURCE_ROOT; }; - 06B3C0F31D99F85400B1DF43 /* BarChartTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartTests.swift; sourceTree = ""; }; - 06B3C0F41D99F85400B1DF43 /* LineChartTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineChartTests.swift; sourceTree = ""; }; - 5B56A9CC1D905EB300F58178 /* Description.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Description.swift; sourceTree = ""; }; - 5BF8813A1DDC4DF70033370C /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IndexAxisValueFormatter.swift; sourceTree = ""; }; - D8A58A401DCE2EF8007BB012 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = Charts/ChartsTests/Media.xcassets; sourceTree = SOURCE_ROOT; }; + 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; + 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataRendererBase.swift; path = Source/Charts/Renderers/ChartDataRendererBase.swift; sourceTree = ""; }; + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; + 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; + 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; + 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IAxisValueFormatter.swift; path = Source/Charts/Formatters/IAxisValueFormatter.swift; sourceTree = ""; }; + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; + 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarRenderer.swift; path = Source/Charts/Renderers/LineRadarRenderer.swift; sourceTree = ""; }; + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueFormatter.swift; path = Source/Charts/Formatters/DefaultValueFormatter.swift; sourceTree = ""; }; + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IndexAxisValueFormatter.swift; path = Source/Charts/Formatters/IndexAxisValueFormatter.swift; sourceTree = ""; }; + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; + 135F11CD20425AF600D655A3 /* PieChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PieChartTests.swift; path = Tests/Charts/PieChartTests.swift; sourceTree = ""; }; + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; + 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ICandleChartDataSet.swift; path = Source/Charts/Data/Interfaces/ICandleChartDataSet.swift; sourceTree = ""; }; + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; + 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IScatterChartDataSet.swift; path = Source/Charts/Data/Interfaces/IScatterChartDataSet.swift; sourceTree = ""; }; + 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; + 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/IRadarChartDataSet.swift; sourceTree = ""; }; + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SquareShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift; sourceTree = ""; }; + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; + 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; + 3A32510073A303CBB38E094A /* IChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IChartDataSet.swift; path = Source/Charts/Data/Interfaces/IChartDataSet.swift; sourceTree = ""; }; + 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; + 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; + 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; + 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineChartDataSet.swift; sourceTree = ""; }; + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; + 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; + 48164CCD83C51B496533CB77 /* MarkerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerView.swift; path = Source/Charts/Components/MarkerView.swift; sourceTree = ""; }; + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarChartViewBase.swift; path = Source/Charts/Charts/PieRadarChartViewBase.swift; sourceTree = ""; }; + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisBase.swift; path = Source/Charts/Components/AxisBase.swift; sourceTree = ""; }; + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; + 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IValueFormatter.swift; path = Source/Charts/Formatters/IValueFormatter.swift; sourceTree = ""; }; + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; + 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineRadarChartDataSet.swift; sourceTree = ""; }; + 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; + 596963A429D485E3894C4666 /* IMarker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IMarker.swift; path = Source/Charts/Components/IMarker.swift; sourceTree = ""; }; + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; + 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartTests.swift; path = Tests/Charts/BarChartTests.swift; sourceTree = ""; }; + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartView.swift; path = Source/Charts/Charts/HorizontalBarChartView.swift; sourceTree = ""; }; + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataProvider.swift; path = Source/Charts/Interfaces/ChartDataProvider.swift; sourceTree = ""; }; + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRenderer.swift; path = Source/Charts/Renderers/YAxisRenderer.swift; sourceTree = ""; }; + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultAxisValueFormatter.swift; path = Source/Charts/Formatters/DefaultAxisValueFormatter.swift; sourceTree = ""; }; + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataSet.swift; sourceTree = ""; }; + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; + 6E03A4987F72414A02A0631B /* PieChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartData.swift; path = Source/Charts/Data/Implementations/Standard/PieChartData.swift; sourceTree = ""; }; + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Renderer.swift; path = Source/Charts/Renderers/Renderer.swift; sourceTree = ""; }; + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieHighlighter.swift; path = Source/Charts/Highlight/PieHighlighter.swift; sourceTree = ""; }; + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; + 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBarChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBarChartDataSet.swift; sourceTree = ""; }; + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; + 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IFillFormatter.swift; path = Source/Charts/Formatters/IFillFormatter.swift; sourceTree = ""; }; + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; + 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; + 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; + 97AD2D4520AF917100F9C24A /* Platform+Accessibility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Platform+Accessibility.swift"; path = "Source/Charts/Utils/Platform+Accessibility.swift"; sourceTree = ""; }; + 998F2BFE318471AFC05B50AC /* IHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IHighlighter.swift; path = Source/Charts/Highlight/IHighlighter.swift; sourceTree = ""; }; + 9A26C8DA1F87B01700367599 /* DataApproximator+N.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "DataApproximator+N.swift"; path = "Source/Charts/Filters/DataApproximator+N.swift"; sourceTree = ""; }; + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; + A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; + A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; + B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; + B66817452241E3CC00017CF1 /* HorizontalBarChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartTests.swift; path = Tests/Charts/HorizontalBarChartTests.swift; sourceTree = ""; }; + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; + C03E6D8023DAAB2600083010 /* ChartDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataTests.swift; sourceTree = ""; }; + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; + C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; + C75935E899183DDFA181E2CC /* AxisRendererBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRendererBase.swift; path = Source/Charts/Renderers/AxisRendererBase.swift; sourceTree = ""; }; + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; + C9AA36092355F01F00C97D93 /* Platform+Color.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Platform+Color.swift"; path = "Source/Charts/Utils/Platform+Color.swift"; sourceTree = ""; }; + C9F3DC242355F791000C3215 /* Platform+Graphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Platform+Graphics.swift"; path = "Source/Charts/Utils/Platform+Graphics.swift"; sourceTree = ""; }; + C9F3DC252355F791000C3215 /* Platform+Gestures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Platform+Gestures.swift"; path = "Source/Charts/Utils/Platform+Gestures.swift"; sourceTree = ""; }; + C9F3DC282355FA2F000C3215 /* Platform+Touch Handling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Platform+Touch Handling.swift"; path = "Source/Charts/Utils/Platform+Touch Handling.swift"; sourceTree = ""; }; + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift; sourceTree = ""; }; + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; + DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IPieChartDataSet.swift; path = Source/Charts/Data/Interfaces/IPieChartDataSet.swift; sourceTree = ""; }; + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; + E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift; sourceTree = ""; }; + E64A75540C627E09080B402A /* Legend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Legend.swift; path = Source/Charts/Components/Legend.swift; sourceTree = ""; }; + E783CFB4889A767C76510917 /* BarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartView.swift; path = Source/Charts/Charts/BarChartView.swift; sourceTree = ""; }; + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartData.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartData.swift; sourceTree = ""; }; + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CircleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift; sourceTree = ""; }; + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; + F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; + F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBubbleChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBubbleChartDataSet.swift; sourceTree = ""; }; + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; + F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; + FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/IShapeRenderer.swift; sourceTree = ""; }; + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; + FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; + FF475B9593B9898853814340 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformer.swift; path = Source/Charts/Utils/Transformer.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 06165F201D8110E600722320 /* Frameworks */ = { + 77997192275C47C45A0A2E9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 06165F2B1D8110E600722320 /* Frameworks */ = { + C16A09321DC2DCF289FF0E3B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 06165F2F1D8110E600722320 /* Charts.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 06165F1A1D8110E600722320 = { + 031D7C33F3BF172E30664862 /* Interfaces */ = { isa = PBXGroup; children = ( - 063FF0401D8CC9940094A042 /* Carthage.xcconfig */, - 06500D381D81115900156E8A /* Charts */, - 06165F321D8110E700722320 /* ChartsTests */, - 06165F251D8110E600722320 /* Products */, + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */, + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */, + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */, + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */, + A140F644332704916947B58C /* CombinedChartDataProvider.swift */, + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, ); + name = Interfaces; sourceTree = ""; }; - 06165F251D8110E600722320 /* Products */ = { + 033FD152BB2F906750106A85 /* Frameworks */ = { isa = PBXGroup; children = ( - 06165F241D8110E600722320 /* Charts.framework */, - 06165F2E1D8110E600722320 /* ChartsTests.xctest */, ); - name = Products; + name = Frameworks; + sourceTree = ""; + }; + 098621EDFBF928494B94BEA1 /* Data */ = { + isa = PBXGroup; + children = ( + 3B9DD76FCE8D873300A822C7 /* Implementations */, + DB2D9648877455028EBEAA8F /* Interfaces */, + ); + name = Data; sourceTree = ""; }; - 06165F321D8110E700722320 /* ChartsTests */ = { + 20C350D33133A4D89BB365B1 /* Source */ = { isa = PBXGroup; children = ( - 06B3C0F21D99F85400B1DF43 /* Charts */, - 06761B5D1D98176000D5CE09 /* ChartUtilsTests.swift */, - 06B1210D1D811FF200D14B02 /* Supporting Files */, + E9F158C8C566B26AFD775911 /* Supporting Files */, + 2647844720BC6574A544A337 /* Charts */, ); - path = ChartsTests; + name = Source; sourceTree = ""; }; - 06500D381D81115900156E8A /* Charts */ = { + 2647844720BC6574A544A337 /* Charts */ = { isa = PBXGroup; children = ( - 06B11FAA1D811B4300D14B02 /* Classes */, - 06B11FAB1D811B5600D14B02 /* Supporting Files */, + A49C1F0F9CCD6E5C143C29F4 /* Animation */, + 8C531E3F3C3DE5843C93C3DA /* Charts */, + 51EF1986C9884C25EED1C2CB /* Components */, + 098621EDFBF928494B94BEA1 /* Data */, + AA79AB82B0ADCA926510B73E /* Filters */, + 74A391010038924F637D6752 /* Formatters */, + 42824E1F334B0C484AF4C594 /* Highlight */, + 031D7C33F3BF172E30664862 /* Interfaces */, + AD1224C45A29A5C88D6B7450 /* Jobs */, + E7589D3E7C2BD2449960AD59 /* Renderers */, + D047819AB7170595896D6FE8 /* Utils */, ); name = Charts; sourceTree = ""; }; - 06B11FAA1D811B4300D14B02 /* Classes */ = { + 3B9DD76FCE8D873300A822C7 /* Implementations */ = { isa = PBXGroup; children = ( - 06B11FB01D811B8900D14B02 /* Animation */, - 06B11FB31D811B8900D14B02 /* Charts */, - 06B11FC01D811B8900D14B02 /* Components */, - 06B11FCB1D811B8900D14B02 /* Data */, - 06B11FF71D811B8900D14B02 /* Filters */, - 06B11FF91D811B8900D14B02 /* Formatters */, - 06B120001D811B8900D14B02 /* Highlight */, - 06B1200B1D811B8900D14B02 /* Interfaces */, - 06B120141D811B8900D14B02 /* Jobs */, - 06B1201B1D811B8900D14B02 /* Renderers */, - 06B1203B1D811B8900D14B02 /* Utils */, + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, + 740017197A160047EBB8A9A0 /* Standard */, ); - name = Classes; + name = Implementations; sourceTree = ""; }; - 06B11FAB1D811B5600D14B02 /* Supporting Files */ = { + 42824E1F334B0C484AF4C594 /* Highlight */ = { isa = PBXGroup; children = ( - 06B11FAE1D811B7000D14B02 /* Charts.h */, - 06B11FAC1D811B6600D14B02 /* Info.plist */, + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */, + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */, + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, + 3D64616883374310C505EC39 /* Highlight.swift */, + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, + 998F2BFE318471AFC05B50AC /* IHighlighter.swift */, + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, + 0F099502DA50C56204E7B744 /* Range.swift */, ); - name = "Supporting Files"; + name = Highlight; sourceTree = ""; }; - 06B11FB01D811B8900D14B02 /* Animation */ = { + 51EF1986C9884C25EED1C2CB /* Components */ = { isa = PBXGroup; children = ( - 06B11FB11D811B8900D14B02 /* Animator.swift */, - 06B11FB21D811B8900D14B02 /* ChartAnimationEasing.swift */, + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */, + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, + B137428B41C143D5115726C4 /* Description.swift */, + 596963A429D485E3894C4666 /* IMarker.swift */, + E64A75540C627E09080B402A /* Legend.swift */, + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, + 48164CCD83C51B496533CB77 /* MarkerView.swift */, + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */, + FB92A80F861C1362EED8D946 /* YAxis.swift */, ); - name = Animation; - path = Source/Charts/Animation; + name = Components; sourceTree = ""; }; - 06B11FB31D811B8900D14B02 /* Charts */ = { + 740017197A160047EBB8A9A0 /* Standard */ = { isa = PBXGroup; children = ( - 06B11FB41D811B8900D14B02 /* BarChartView.swift */, - 06B11FB51D811B8900D14B02 /* BarLineChartViewBase.swift */, - 06B11FB61D811B8900D14B02 /* BubbleChartView.swift */, - 06B11FB71D811B8900D14B02 /* CandleStickChartView.swift */, - 06B11FB81D811B8900D14B02 /* ChartViewBase.swift */, - 06B11FB91D811B8900D14B02 /* CombinedChartView.swift */, - 06B11FBA1D811B8900D14B02 /* HorizontalBarChartView.swift */, - 06B11FBB1D811B8900D14B02 /* LineChartView.swift */, - 06B11FBC1D811B8900D14B02 /* PieChartView.swift */, - 06B11FBD1D811B8900D14B02 /* PieRadarChartViewBase.swift */, - 06B11FBE1D811B8900D14B02 /* RadarChartView.swift */, - 06B11FBF1D811B8900D14B02 /* ScatterChartView.swift */, + 0108D5925E21A47DA36A66AA /* BarChartData.swift */, + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, + E120E76C6F1B5877D56126DD /* ChartData.swift */, + F22750328058DEC2F019646F /* ChartDataEntry.swift */, + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, + 6E03A4987F72414A02A0631B /* PieChartData.swift */, + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, ); - name = Charts; - path = Source/Charts/Charts; + name = Standard; sourceTree = ""; }; - 06B11FC01D811B8900D14B02 /* Components */ = { + 74A391010038924F637D6752 /* Formatters */ = { isa = PBXGroup; children = ( - 06B11FC11D811B8900D14B02 /* AxisBase.swift */, - 06B11FC21D811B8900D14B02 /* ChartLimitLine.swift */, - 06B11FC31D811B8900D14B02 /* ComponentBase.swift */, - 5B56A9CC1D905EB300F58178 /* Description.swift */, - 06B11FC41D811B8900D14B02 /* IMarker.swift */, - 06B11FC51D811B8900D14B02 /* Legend.swift */, - 06B11FC61D811B8900D14B02 /* LegendEntry.swift */, - 06B11FC71D811B8900D14B02 /* MarkerImage.swift */, - 06B11FC81D811B8900D14B02 /* MarkerView.swift */, - 06B11FC91D811B8900D14B02 /* XAxis.swift */, - 06B11FCA1D811B8900D14B02 /* YAxis.swift */, + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, + 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */, + 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */, + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, + 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */, ); - name = Components; - path = Source/Charts/Components; + name = Formatters; sourceTree = ""; }; - 06B11FCB1D811B8900D14B02 /* Data */ = { + 865A1CF149F52850CAB7F177 = { isa = PBXGroup; children = ( - 06B11FCC1D811B8900D14B02 /* Implementations */, - 06B11FEB1D811B8900D14B02 /* Interfaces */, + AB2D554102718F209377399E /* Products */, + 033FD152BB2F906750106A85 /* Frameworks */, + 20C350D33133A4D89BB365B1 /* Source */, + D2C26AC015E753014C7571E4 /* Tests */, ); - name = Data; - path = Source/Charts/Data; sourceTree = ""; }; - 06B11FCC1D811B8900D14B02 /* Implementations */ = { + 8C531E3F3C3DE5843C93C3DA /* Charts */ = { isa = PBXGroup; children = ( - 06B11FCD1D811B8900D14B02 /* ChartBaseDataSet.swift */, - 06B11FCE1D811B8900D14B02 /* Standard */, + E783CFB4889A767C76510917 /* BarChartView.swift */, + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */, + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */, + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */, + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */, + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */, + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */, + 0619A877C69A95ECCC440A44 /* LineChartView.swift */, + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */, + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */, + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */, + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */, ); - path = Implementations; + name = Charts; sourceTree = ""; }; - 06B11FCE1D811B8900D14B02 /* Standard */ = { + 9613A7C800C7F065A823D587 /* Charts */ = { isa = PBXGroup; children = ( - 06B11FCF1D811B8900D14B02 /* BarChartData.swift */, - 06B11FD01D811B8900D14B02 /* BarChartDataEntry.swift */, - 06B11FD11D811B8900D14B02 /* BarChartDataSet.swift */, - 06B11FD21D811B8900D14B02 /* BarLineScatterCandleBubbleChartData.swift */, - 06B11FD31D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataSet.swift */, - 06B11FD41D811B8900D14B02 /* BubbleChartData.swift */, - 06B11FD51D811B8900D14B02 /* BubbleChartDataEntry.swift */, - 06B11FD61D811B8900D14B02 /* BubbleChartDataSet.swift */, - 06B11FD71D811B8900D14B02 /* CandleChartData.swift */, - 06B11FD81D811B8900D14B02 /* CandleChartDataEntry.swift */, - 06B11FD91D811B8900D14B02 /* CandleChartDataSet.swift */, - 06B11FDA1D811B8900D14B02 /* ChartData.swift */, - 06B11FDB1D811B8900D14B02 /* ChartDataEntry.swift */, - 06B11FDC1D811B8900D14B02 /* ChartDataEntryBase.swift */, - 06B11FDD1D811B8900D14B02 /* ChartDataSet.swift */, - 06B11FDE1D811B8900D14B02 /* CombinedChartData.swift */, - 06B11FDF1D811B8900D14B02 /* LineChartData.swift */, - 06B11FE01D811B8900D14B02 /* LineChartDataSet.swift */, - 06B11FE11D811B8900D14B02 /* LineRadarChartDataSet.swift */, - 06B11FE21D811B8900D14B02 /* LineScatterCandleRadarChartDataSet.swift */, - 06B11FE31D811B8900D14B02 /* PieChartData.swift */, - 06B11FE41D811B8900D14B02 /* PieChartDataEntry.swift */, - 06B11FE51D811B8900D14B02 /* PieChartDataSet.swift */, - 06B11FE61D811B8900D14B02 /* RadarChartData.swift */, - 06B11FE71D811B8900D14B02 /* RadarChartDataEntry.swift */, - 06B11FE81D811B8900D14B02 /* RadarChartDataSet.swift */, - 06B11FE91D811B8900D14B02 /* ScatterChartData.swift */, - 06B11FEA1D811B8900D14B02 /* ScatterChartDataSet.swift */, + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, + B66817452241E3CC00017CF1 /* HorizontalBarChartTests.swift */, + 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */, + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, + 135F11CD20425AF600D655A3 /* PieChartTests.swift */, + 064989451F5C99C7006E8BB3 /* Snapshot.swift */, + C03E6D8023DAAB2600083010 /* ChartDataTests.swift */, ); - path = Standard; + name = Charts; sourceTree = ""; }; - 06B11FEB1D811B8900D14B02 /* Interfaces */ = { + A49C1F0F9CCD6E5C143C29F4 /* Animation */ = { isa = PBXGroup; children = ( - 06B11FEC1D811B8900D14B02 /* IBarChartDataSet.swift */, - 06B11FED1D811B8900D14B02 /* IBarLineScatterCandleBubbleChartDataSet.swift */, - 06B11FEE1D811B8900D14B02 /* IBubbleChartDataSet.swift */, - 06B11FEF1D811B8900D14B02 /* ICandleChartDataSet.swift */, - 06B11FF01D811B8900D14B02 /* IChartDataSet.swift */, - 06B11FF11D811B8900D14B02 /* ILineChartDataSet.swift */, - 06B11FF21D811B8900D14B02 /* ILineRadarChartDataSet.swift */, - 06B11FF31D811B8900D14B02 /* ILineScatterCandleRadarChartDataSet.swift */, - 06B11FF41D811B8900D14B02 /* IPieChartDataSet.swift */, - 06B11FF51D811B8900D14B02 /* IRadarChartDataSet.swift */, - 06B11FF61D811B8900D14B02 /* IScatterChartDataSet.swift */, + 3976E5F9D60E30CD94CE6156 /* Animator.swift */, + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */, ); - path = Interfaces; + name = Animation; sourceTree = ""; }; - 06B11FF71D811B8900D14B02 /* Filters */ = { + AA79AB82B0ADCA926510B73E /* Filters */ = { isa = PBXGroup; children = ( - 06B11FF81D811B8900D14B02 /* DataApproximator.swift */, + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */, + 9A26C8DA1F87B01700367599 /* DataApproximator+N.swift */, ); name = Filters; - path = Source/Charts/Filters; sourceTree = ""; }; - 06B11FF91D811B8900D14B02 /* Formatters */ = { + AB2D554102718F209377399E /* Products */ = { isa = PBXGroup; children = ( - 06B11FFA1D811B8900D14B02 /* DefaultAxisValueFormatter.swift */, - 06B11FFB1D811B8900D14B02 /* DefaultFillFormatter.swift */, - 06B11FFC1D811B8900D14B02 /* DefaultValueFormatter.swift */, - 06B11FFD1D811B8900D14B02 /* IAxisValueFormatter.swift */, - 06B11FFE1D811B8900D14B02 /* IFillFormatter.swift */, - 06B11FFF1D811B8900D14B02 /* IValueFormatter.swift */, - 5BF8813A1DDC4DF70033370C /* IndexAxisValueFormatter.swift */, + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */, + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */, ); - name = Formatters; - path = Source/Charts/Formatters; + name = Products; sourceTree = ""; }; - 06B120001D811B8900D14B02 /* Highlight */ = { + AD1224C45A29A5C88D6B7450 /* Jobs */ = { isa = PBXGroup; children = ( - 06B120011D811B8900D14B02 /* BarHighlighter.swift */, - 06B120021D811B8900D14B02 /* ChartHighlighter.swift */, - 06B120031D811B8900D14B02 /* CombinedHighlighter.swift */, - 06B120041D811B8900D14B02 /* Highlight.swift */, - 06B120051D811B8900D14B02 /* HorizontalBarHighlighter.swift */, - 06B120061D811B8900D14B02 /* IHighlighter.swift */, - 06B120071D811B8900D14B02 /* PieHighlighter.swift */, - 06B120081D811B8900D14B02 /* PieRadarHighlighter.swift */, - 06B120091D811B8900D14B02 /* RadarHighlighter.swift */, - 06B1200A1D811B8900D14B02 /* Range.swift */, + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */, + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */, + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */, + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */, + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */, + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */, ); - name = Highlight; - path = Source/Charts/Highlight; + name = Jobs; sourceTree = ""; }; - 06B1200B1D811B8900D14B02 /* Interfaces */ = { + BF662941E21BC049994B2598 /* Supporting Files */ = { isa = PBXGroup; children = ( - 06B1200C1D811B8900D14B02 /* BarChartDataProvider.swift */, - 06B1200D1D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataProvider.swift */, - 06B1200E1D811B8900D14B02 /* BubbleChartDataProvider.swift */, - 06B1200F1D811B8900D14B02 /* CandleChartDataProvider.swift */, - 06B120101D811B8900D14B02 /* ChartDataProvider.swift */, - 06B120111D811B8900D14B02 /* CombinedChartDataProvider.swift */, - 06B120121D811B8900D14B02 /* LineChartDataProvider.swift */, - 06B120131D811B8900D14B02 /* ScatterChartDataProvider.swift */, + C574E1BC7E12D937A5471EF8 /* Info.plist */, + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */, ); - name = Interfaces; - path = Source/Charts/Interfaces; + name = "Supporting Files"; sourceTree = ""; }; - 06B120141D811B8900D14B02 /* Jobs */ = { + D047819AB7170595896D6FE8 /* Utils */ = { isa = PBXGroup; children = ( - 06B120151D811B8900D14B02 /* AnimatedMoveViewJob.swift */, - 06B120161D811B8900D14B02 /* AnimatedViewPortJob.swift */, - 06B120171D811B8900D14B02 /* AnimatedZoomViewJob.swift */, - 06B120181D811B8900D14B02 /* MoveViewJob.swift */, - 06B120191D811B8900D14B02 /* ViewPortJob.swift */, - 06B1201A1D811B8900D14B02 /* ZoomViewJob.swift */, + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */, + 3FDA09EF973925A110506799 /* ChartUtils.swift */, + 5A4CFFFB65819121595F06F1 /* Fill.swift */, + 3ED23C354AFE81818D78E645 /* Platform.swift */, + 97AD2D4520AF917100F9C24A /* Platform+Accessibility.swift */, + C9AA36092355F01F00C97D93 /* Platform+Color.swift */, + C9F3DC252355F791000C3215 /* Platform+Gestures.swift */, + C9F3DC242355F791000C3215 /* Platform+Graphics.swift */, + C9F3DC282355FA2F000C3215 /* Platform+Touch Handling.swift */, + FF475B9593B9898853814340 /* Transformer.swift */, + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */, + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */, ); - name = Jobs; - path = Source/Charts/Jobs; + name = Utils; sourceTree = ""; }; - 06B1201B1D811B8900D14B02 /* Renderers */ = { + D2C26AC015E753014C7571E4 /* Tests */ = { isa = PBXGroup; children = ( - 06B1201C1D811B8900D14B02 /* AxisRendererBase.swift */, - 06B1201D1D811B8900D14B02 /* BarChartRenderer.swift */, - 06B1201E1D811B8900D14B02 /* BarLineScatterCandleBubbleRenderer.swift */, - 06B1201F1D811B8900D14B02 /* BubbleChartRenderer.swift */, - 06B120201D811B8900D14B02 /* CandleStickChartRenderer.swift */, - 06B120211D811B8900D14B02 /* ChartDataRendererBase.swift */, - 06B120221D811B8900D14B02 /* CombinedChartRenderer.swift */, - 06B120231D811B8900D14B02 /* HorizontalBarChartRenderer.swift */, - 06B120241D811B8900D14B02 /* LegendRenderer.swift */, - 06B120251D811B8900D14B02 /* LineChartRenderer.swift */, - 06B120261D811B8900D14B02 /* LineRadarRenderer.swift */, - 06B120271D811B8900D14B02 /* LineScatterCandleRadarRenderer.swift */, - 06B120281D811B8900D14B02 /* PieChartRenderer.swift */, - 06B120291D811B8900D14B02 /* RadarChartRenderer.swift */, - 06B1202A1D811B8900D14B02 /* Renderer.swift */, - 06B1202B1D811B8900D14B02 /* Scatter */, - 06B120341D811B8900D14B02 /* ScatterChartRenderer.swift */, - 06B120351D811B8900D14B02 /* XAxisRenderer.swift */, - 06B120361D811B8900D14B02 /* XAxisRendererHorizontalBarChart.swift */, - 06B120371D811B8900D14B02 /* XAxisRendererRadarChart.swift */, - 06B120381D811B8900D14B02 /* YAxisRenderer.swift */, - 06B120391D811B8900D14B02 /* YAxisRendererHorizontalBarChart.swift */, - 06B1203A1D811B8900D14B02 /* YAxisRendererRadarChart.swift */, + BF662941E21BC049994B2598 /* Supporting Files */, + 9613A7C800C7F065A823D587 /* Charts */, ); - name = Renderers; - path = Source/Charts/Renderers; + name = Tests; sourceTree = ""; }; - 06B1202B1D811B8900D14B02 /* Scatter */ = { + DB2D9648877455028EBEAA8F /* Interfaces */ = { isa = PBXGroup; children = ( - 06B1202C1D811B8900D14B02 /* ChevronDownShapeRenderer.swift */, - 06B1202D1D811B8900D14B02 /* ChevronUpShapeRenderer.swift */, - 06B1202E1D811B8900D14B02 /* CircleShapeRenderer.swift */, - 06B1202F1D811B8900D14B02 /* CrossShapeRenderer.swift */, - 06B120301D811B8900D14B02 /* IShapeRenderer.swift */, - 06B120311D811B8900D14B02 /* SquareShapeRenderer.swift */, - 06B120321D811B8900D14B02 /* TriangleShapeRenderer.swift */, - 06B120331D811B8900D14B02 /* XShapeRenderer.swift */, + 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */, + A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */, + F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */, + 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */, + 3A32510073A303CBB38E094A /* IChartDataSet.swift */, + 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */, + 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */, + 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */, + DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */, + 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */, + 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */, ); - path = Scatter; + name = Interfaces; sourceTree = ""; }; - 06B1203B1D811B8900D14B02 /* Utils */ = { + E7589D3E7C2BD2449960AD59 /* Renderers */ = { isa = PBXGroup; children = ( - 06B1203C1D811B8900D14B02 /* ChartColorTemplates.swift */, - 06B1203D1D811B8900D14B02 /* ChartUtils.swift */, - 06B1203E1D811B8900D14B02 /* Fill.swift */, - 06B1203F1D811B8900D14B02 /* Platform.swift */, - 06B120401D811B8900D14B02 /* Transformer.swift */, - 06B120411D811B8900D14B02 /* TransformerHorizontalBarChart.swift */, - 06B120421D811B8900D14B02 /* ViewPortHandler.swift */, + C75935E899183DDFA181E2CC /* AxisRendererBase.swift */, + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, + 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */, + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, + F715DB2C56C9E0615542625B /* LegendRenderer.swift */, + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, + 46D8013D44629521B1746364 /* PieChartRenderer.swift */, + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, + F7059584CB30EF419CFB3335 /* Scatter */, + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, ); - name = Utils; - path = Source/Charts/Utils; + name = Renderers; sourceTree = ""; }; - 06B1210D1D811FF200D14B02 /* Supporting Files */ = { + E9F158C8C566B26AFD775911 /* Supporting Files */ = { isa = PBXGroup; children = ( - 06B121111D81201C00D14B02 /* Info.plist */, - D8A58A401DCE2EF8007BB012 /* Media.xcassets */, + 910DBFE1DA1B2CA237A736DF /* Info.plist */, + 4F9922F0641F7955DC6CD324 /* Charts.h */, ); name = "Supporting Files"; sourceTree = ""; }; - 06B3C0F21D99F85400B1DF43 /* Charts */ = { + F7059584CB30EF419CFB3335 /* Scatter */ = { isa = PBXGroup; children = ( - 06B3C0F31D99F85400B1DF43 /* BarChartTests.swift */, - 06B3C0F41D99F85400B1DF43 /* LineChartTests.swift */, + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, + FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */, + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, ); - name = Charts; - path = Tests/Charts; - sourceTree = SOURCE_ROOT; + name = Scatter; + sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 06165F211D8110E600722320 /* Headers */ = { + B2B2DD73E237562739EE1F83 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 06B11FAF1D811B7000D14B02 /* Charts.h in Headers */, + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 06165F231D8110E600722320 /* Charts */ = { + A58A4ED274A941CA248EA921 /* Charts */ = { isa = PBXNativeTarget; - buildConfigurationList = 06165F381D8110E700722320 /* Build configuration list for PBXNativeTarget "Charts" */; + buildConfigurationList = F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */; buildPhases = ( - 06165F1F1D8110E600722320 /* Sources */, - 06165F201D8110E600722320 /* Frameworks */, - 06165F211D8110E600722320 /* Headers */, - 06165F221D8110E600722320 /* Resources */, + B2B2DD73E237562739EE1F83 /* Headers */, + B5996DB2D9B6F0DB0E9D3F3E /* Sources */, + E257C254E738A8AE047C6FB6 /* Resources */, + C16A09321DC2DCF289FF0E3B /* Frameworks */, ); buildRules = ( ); @@ -692,481 +722,561 @@ ); name = Charts; productName = Charts; - productReference = 06165F241D8110E600722320 /* Charts.framework */; + productReference = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; productType = "com.apple.product-type.framework"; }; - 06165F2D1D8110E600722320 /* ChartsTests */ = { + F2749BD5443C1CB5FE2080C2 /* ChartsTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 06165F3B1D8110E700722320 /* Build configuration list for PBXNativeTarget "ChartsTests" */; + buildConfigurationList = E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */; buildPhases = ( - 064DBAE11D93813D002584CD /* Build Dependencies */, - 06165F2A1D8110E600722320 /* Sources */, - 06165F2B1D8110E600722320 /* Frameworks */, - 06165F2C1D8110E600722320 /* Resources */, - B6355D621EA9B71800B74B2E /* Copy Carthage Frameworks */, + D6BF00523905132F162A7710 /* Build Dependencies */, + E356A2384A2368AB3D2C7912 /* Sources */, + 5B102E31AA8399941CC6248D /* Resources */, + 77997192275C47C45A0A2E9A /* Frameworks */, + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */, ); buildRules = ( ); dependencies = ( - 06165F311D8110E600722320 /* PBXTargetDependency */, + 8676F8A013D87F9961E92465 /* PBXTargetDependency */, ); name = ChartsTests; productName = ChartsTests; - productReference = 06165F2E1D8110E600722320 /* ChartsTests.xctest */; + productReference = 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 06165F1B1D8110E600722320 /* Project object */ = { + 193FC8DF32D250560C5F5D77 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0800; + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 1020; TargetAttributes = { - 06165F231D8110E600722320 = { - CreatedOnToolsVersion = 7.3.1; + A58A4ED274A941CA248EA921 = { + LastSwiftMigration = 0900; }; - 06165F2D1D8110E600722320 = { - CreatedOnToolsVersion = 7.3.1; + F2749BD5443C1CB5FE2080C2 = { + LastSwiftMigration = 0900; }; }; }; - buildConfigurationList = 06165F1E1D8110E600722320 /* Build configuration list for PBXProject "Charts" */; + buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); - mainGroup = 06165F1A1D8110E600722320; - productRefGroup = 06165F251D8110E600722320 /* Products */; + mainGroup = 865A1CF149F52850CAB7F177; + productRefGroup = AB2D554102718F209377399E /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 06165F231D8110E600722320 /* Charts */, - 06165F2D1D8110E600722320 /* ChartsTests */, + A58A4ED274A941CA248EA921 /* Charts */, + F2749BD5443C1CB5FE2080C2 /* ChartsTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 06165F221D8110E600722320 /* Resources */ = { + 5B102E31AA8399941CC6248D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 06165F2C1D8110E600722320 /* Resources */ = { + E257C254E738A8AE047C6FB6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D8A58A411DCE2EF8007BB012 /* Media.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 064DBAE11D93813D002584CD /* Build Dependencies */ = { + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + FBSnapshotTestCase.framework, ); - name = "Build Dependencies"; + name = "Copy Carthage Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\"\n"; + shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; }; - B6355D621EA9B71800B74B2E /* Copy Carthage Frameworks */ = { + D6BF00523905132F162A7710 /* Build Dependencies */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - FBSnapshotTestCase, - ); - name = "Copy Carthage Frameworks"; + name = "Build Dependencies"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; + shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\""; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 06165F1F1D8110E600722320 /* Sources */ = { + B5996DB2D9B6F0DB0E9D3F3E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 06B120AD1D811B8900D14B02 /* LineScatterCandleRadarRenderer.swift in Sources */, - 06B120C51D811B8900D14B02 /* TransformerHorizontalBarChart.swift in Sources */, - 06B1204A1D811B8900D14B02 /* CombinedChartView.swift in Sources */, - 06B1204C1D811B8900D14B02 /* LineChartView.swift in Sources */, - 06B120AF1D811B8900D14B02 /* RadarChartRenderer.swift in Sources */, - 06B1207B1D811B8900D14B02 /* ICandleChartDataSet.swift in Sources */, - 06B120511D811B8900D14B02 /* AxisBase.swift in Sources */, - 06B1209F1D811B8900D14B02 /* MoveViewJob.swift in Sources */, - 06B1209C1D811B8900D14B02 /* AnimatedMoveViewJob.swift in Sources */, - 06B1208B1D811B8900D14B02 /* ChartHighlighter.swift in Sources */, - 06B1209A1D811B8900D14B02 /* LineChartDataProvider.swift in Sources */, - 06B120571D811B8900D14B02 /* MarkerImage.swift in Sources */, - 06B1207D1D811B8900D14B02 /* ILineChartDataSet.swift in Sources */, - 06B120801D811B8900D14B02 /* IPieChartDataSet.swift in Sources */, - 06B120C41D811B8900D14B02 /* Transformer.swift in Sources */, - 06B1206C1D811B8900D14B02 /* LineChartData.swift in Sources */, - 06B1208F1D811B8900D14B02 /* IHighlighter.swift in Sources */, - 5B56A9CD1D905EB300F58178 /* Description.swift in Sources */, - 06B120921D811B8900D14B02 /* RadarHighlighter.swift in Sources */, - 06B120771D811B8900D14B02 /* ScatterChartDataSet.swift in Sources */, - 06B120791D811B8900D14B02 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */, - 06B1205A1D811B8900D14B02 /* YAxis.swift in Sources */, - 06B120651D811B8900D14B02 /* CandleChartDataEntry.swift in Sources */, - 06B120911D811B8900D14B02 /* PieRadarHighlighter.swift in Sources */, - 06B1207A1D811B8900D14B02 /* IBubbleChartDataSet.swift in Sources */, - 06B120841D811B8900D14B02 /* DefaultAxisValueFormatter.swift in Sources */, - 06B120711D811B8900D14B02 /* PieChartDataEntry.swift in Sources */, - 06B120C61D811B8900D14B02 /* ViewPortHandler.swift in Sources */, - 06B120881D811B8900D14B02 /* IFillFormatter.swift in Sources */, - 06B1204F1D811B8900D14B02 /* RadarChartView.swift in Sources */, - 06B120611D811B8900D14B02 /* BubbleChartData.swift in Sources */, - 06B120441D811B8900D14B02 /* ChartAnimationEasing.swift in Sources */, - 06B120761D811B8900D14B02 /* ScatterChartData.swift in Sources */, - 06B120691D811B8900D14B02 /* ChartDataEntryBase.swift in Sources */, - 06B120891D811B8900D14B02 /* IValueFormatter.swift in Sources */, - 06B120811D811B8900D14B02 /* IRadarChartDataSet.swift in Sources */, - 06B120581D811B8900D14B02 /* MarkerView.swift in Sources */, - 06B120751D811B8900D14B02 /* RadarChartDataSet.swift in Sources */, - 06B120B11D811B8900D14B02 /* ChevronDownShapeRenderer.swift in Sources */, - 06B120501D811B8900D14B02 /* ScatterChartView.swift in Sources */, - 06B120551D811B8900D14B02 /* Legend.swift in Sources */, - 06B1205F1D811B8900D14B02 /* BarLineScatterCandleBubbleChartData.swift in Sources */, - 06B120631D811B8900D14B02 /* BubbleChartDataSet.swift in Sources */, - 06B1205D1D811B8900D14B02 /* BarChartDataEntry.swift in Sources */, - 06B120481D811B8900D14B02 /* CandleStickChartView.swift in Sources */, - 06B120B81D811B8900D14B02 /* XShapeRenderer.swift in Sources */, - 06B120B21D811B8900D14B02 /* ChevronUpShapeRenderer.swift in Sources */, - 06B120591D811B8900D14B02 /* XAxis.swift in Sources */, - 06B120681D811B8900D14B02 /* ChartDataEntry.swift in Sources */, - 06B120A71D811B8900D14B02 /* ChartDataRendererBase.swift in Sources */, - 06B1209B1D811B8900D14B02 /* ScatterChartDataProvider.swift in Sources */, - 06B1204D1D811B8900D14B02 /* PieChartView.swift in Sources */, - 06B120521D811B8900D14B02 /* ChartLimitLine.swift in Sources */, - 06B120B31D811B8900D14B02 /* CircleShapeRenderer.swift in Sources */, - 06B1206A1D811B8900D14B02 /* ChartDataSet.swift in Sources */, - 06B120431D811B8900D14B02 /* Animator.swift in Sources */, - 06B120B01D811B8900D14B02 /* Renderer.swift in Sources */, - 06B120851D811B8900D14B02 /* DefaultFillFormatter.swift in Sources */, - 06B120A91D811B8900D14B02 /* HorizontalBarChartRenderer.swift in Sources */, - 06B120BB1D811B8900D14B02 /* XAxisRendererHorizontalBarChart.swift in Sources */, - 06B1205B1D811B8900D14B02 /* ChartBaseDataSet.swift in Sources */, - 06B120471D811B8900D14B02 /* BubbleChartView.swift in Sources */, - 06B120BE1D811B8900D14B02 /* YAxisRendererHorizontalBarChart.swift in Sources */, - 06B120B51D811B8900D14B02 /* IShapeRenderer.swift in Sources */, - 06B120B71D811B8900D14B02 /* TriangleShapeRenderer.swift in Sources */, - 06B120971D811B8900D14B02 /* CandleChartDataProvider.swift in Sources */, - 06B120C11D811B8900D14B02 /* ChartUtils.swift in Sources */, - 06B120BD1D811B8900D14B02 /* YAxisRenderer.swift in Sources */, - 06B1206F1D811B8900D14B02 /* LineScatterCandleRadarChartDataSet.swift in Sources */, - 06B120BC1D811B8900D14B02 /* XAxisRendererRadarChart.swift in Sources */, - 06B120461D811B8900D14B02 /* BarLineChartViewBase.swift in Sources */, - 06B120A61D811B8900D14B02 /* CandleStickChartRenderer.swift in Sources */, - 06B120491D811B8900D14B02 /* ChartViewBase.swift in Sources */, - 06B120541D811B8900D14B02 /* IMarker.swift in Sources */, - 06B120BF1D811B8900D14B02 /* YAxisRendererRadarChart.swift in Sources */, - 06B1207C1D811B8900D14B02 /* IChartDataSet.swift in Sources */, - 06B120941D811B8900D14B02 /* BarChartDataProvider.swift in Sources */, - 06B1205E1D811B8900D14B02 /* BarChartDataSet.swift in Sources */, - 06B120A31D811B8900D14B02 /* BarChartRenderer.swift in Sources */, - 06B120781D811B8900D14B02 /* IBarChartDataSet.swift in Sources */, - 06B120601D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, - 06B1208D1D811B8900D14B02 /* Highlight.swift in Sources */, - 06B120821D811B8900D14B02 /* IScatterChartDataSet.swift in Sources */, - 06B120951D811B8900D14B02 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, - 06B120A81D811B8900D14B02 /* CombinedChartRenderer.swift in Sources */, - 06B120981D811B8900D14B02 /* ChartDataProvider.swift in Sources */, - 06B1204B1D811B8900D14B02 /* HorizontalBarChartView.swift in Sources */, - 06B120871D811B8900D14B02 /* IAxisValueFormatter.swift in Sources */, - 06B1208A1D811B8900D14B02 /* BarHighlighter.swift in Sources */, - 06B120A11D811B8900D14B02 /* ZoomViewJob.swift in Sources */, - 06B120731D811B8900D14B02 /* RadarChartData.swift in Sources */, - 06B1208C1D811B8900D14B02 /* CombinedHighlighter.swift in Sources */, - 06B1204E1D811B8900D14B02 /* PieRadarChartViewBase.swift in Sources */, - 06B120901D811B8900D14B02 /* PieHighlighter.swift in Sources */, - 06B120AC1D811B8900D14B02 /* LineRadarRenderer.swift in Sources */, - 06B120561D811B8900D14B02 /* LegendEntry.swift in Sources */, - 06B120701D811B8900D14B02 /* PieChartData.swift in Sources */, - 06B120C01D811B8900D14B02 /* ChartColorTemplates.swift in Sources */, - 06B120B61D811B8900D14B02 /* SquareShapeRenderer.swift in Sources */, - 06B120661D811B8900D14B02 /* CandleChartDataSet.swift in Sources */, - 06B120AE1D811B8900D14B02 /* PieChartRenderer.swift in Sources */, - 06B1207F1D811B8900D14B02 /* ILineScatterCandleRadarChartDataSet.swift in Sources */, - 06B1209D1D811B8900D14B02 /* AnimatedViewPortJob.swift in Sources */, - 06B120721D811B8900D14B02 /* PieChartDataSet.swift in Sources */, - 06B1206B1D811B8900D14B02 /* CombinedChartData.swift in Sources */, - 5BF8813B1DDC4DF70033370C /* IndexAxisValueFormatter.swift in Sources */, - 06B120AB1D811B8900D14B02 /* LineChartRenderer.swift in Sources */, - 06B120C31D811B8900D14B02 /* Platform.swift in Sources */, - 06B1207E1D811B8900D14B02 /* ILineRadarChartDataSet.swift in Sources */, - 06B120831D811B8900D14B02 /* DataApproximator.swift in Sources */, - 06B1206D1D811B8900D14B02 /* LineChartDataSet.swift in Sources */, - 06B120451D811B8900D14B02 /* BarChartView.swift in Sources */, - 06B120861D811B8900D14B02 /* DefaultValueFormatter.swift in Sources */, - 06B120A01D811B8900D14B02 /* ViewPortJob.swift in Sources */, - 06B120C21D811B8900D14B02 /* Fill.swift in Sources */, - 06B1205C1D811B8900D14B02 /* BarChartData.swift in Sources */, - 06B120961D811B8900D14B02 /* BubbleChartDataProvider.swift in Sources */, - 06B120A51D811B8900D14B02 /* BubbleChartRenderer.swift in Sources */, - 06B120B91D811B8900D14B02 /* ScatterChartRenderer.swift in Sources */, - 06B120741D811B8900D14B02 /* RadarChartDataEntry.swift in Sources */, - 06B120BA1D811B8900D14B02 /* XAxisRenderer.swift in Sources */, - 06B120641D811B8900D14B02 /* CandleChartData.swift in Sources */, - 06B120AA1D811B8900D14B02 /* LegendRenderer.swift in Sources */, - 06B120B41D811B8900D14B02 /* CrossShapeRenderer.swift in Sources */, - 06B120931D811B8900D14B02 /* Range.swift in Sources */, - 06B120A21D811B8900D14B02 /* AxisRendererBase.swift in Sources */, - 06B1208E1D811B8900D14B02 /* HorizontalBarHighlighter.swift in Sources */, - 06B1206E1D811B8900D14B02 /* LineRadarChartDataSet.swift in Sources */, - 06B120A41D811B8900D14B02 /* BarLineScatterCandleBubbleRenderer.swift in Sources */, - 06B120531D811B8900D14B02 /* ComponentBase.swift in Sources */, - 06B120991D811B8900D14B02 /* CombinedChartDataProvider.swift in Sources */, - 06B120671D811B8900D14B02 /* ChartData.swift in Sources */, - 06B1209E1D811B8900D14B02 /* AnimatedZoomViewJob.swift in Sources */, - 06B120621D811B8900D14B02 /* BubbleChartDataEntry.swift in Sources */, + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */, + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */, + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */, + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */, + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */, + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */, + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */, + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */, + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */, + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */, + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */, + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */, + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */, + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */, + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */, + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, + 03960E8148C6AEDACE4B77CC /* IMarker.swift in Sources */, + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, + C9F3DC272355F791000C3215 /* Platform+Gestures.swift in Sources */, + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */, + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */, + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */, + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */, + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */, + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */, + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */, + C9AA360A2355F01F00C97D93 /* Platform+Color.swift in Sources */, + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */, + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */, + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */, + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */, + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */, + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */, + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */, + 81892994002C0640AD858748 /* ChartData.swift in Sources */, + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */, + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */, + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */, + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */, + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */, + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */, + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */, + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */, + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */, + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */, + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */, + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */, + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */, + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, + 9A26C8DB1F87B01700367599 /* DataApproximator+N.swift in Sources */, + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, + C3F0DDB7F0A922F0BB7EDB8A /* IBarChartDataSet.swift in Sources */, + AF4AAF3709ED9DDF6362EAE8 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */, + 2C40CFFC8D88BEA70E0A50B0 /* IBubbleChartDataSet.swift in Sources */, + 0D8A89398F9BD5DCC8D7F976 /* ICandleChartDataSet.swift in Sources */, + E8F0F4F47CD7D72B4EE5A794 /* IChartDataSet.swift in Sources */, + F941C88BF814DF51C465CB95 /* ILineChartDataSet.swift in Sources */, + 1311BEC21E9CC264E971EFAF /* ILineRadarChartDataSet.swift in Sources */, + 146EE16342C2BADC92E45BF2 /* ILineScatterCandleRadarChartDataSet.swift in Sources */, + FAAD9FF6565DED2652188584 /* IPieChartDataSet.swift in Sources */, + 83BBAF3EDC31FD452F8BF1DB /* IRadarChartDataSet.swift in Sources */, + 50476F8E6662CAFC1EFE0723 /* IScatterChartDataSet.swift in Sources */, + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, + B13C74B4FF705D7B595D01EF /* IAxisValueFormatter.swift in Sources */, + B6C9F450D937B87224D29D5C /* IFillFormatter.swift in Sources */, + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, + A40ACF0CCE96EEE104B0463D /* IValueFormatter.swift in Sources */, + C9F3DC262355F791000C3215 /* Platform+Graphics.swift in Sources */, + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, + 203A39685CC96FC625F616E4 /* IHighlighter.swift in Sources */, + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */, + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */, + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */, + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */, + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */, + C9F3DC292355FA2F000C3215 /* Platform+Touch Handling.swift in Sources */, + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */, + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */, + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */, + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */, + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */, + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */, + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, + ECECC58CEF03B1718F8267E8 /* AxisRendererBase.swift in Sources */, + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, + F37B07008B8AE7F3909FFB9C /* ChartDataRendererBase.swift in Sources */, + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */, + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */, + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */, + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */, + 97AD2D4620AF917100F9C24A /* Platform+Accessibility.swift in Sources */, + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */, + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */, + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */, + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, + 8A9FF54E2075A9047CC8E953 /* IShapeRenderer.swift in Sources */, + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */, + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */, + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */, + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */, + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */, + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */, + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */, + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */, + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */, + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */, + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */, + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */, + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */, + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 06165F2A1D8110E600722320 /* Sources */ = { + E356A2384A2368AB3D2C7912 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 06B3C0F81D99F85400B1DF43 /* LineChartTests.swift in Sources */, - 06B3C0F71D99F85400B1DF43 /* BarChartTests.swift in Sources */, - 06761B5E1D98176000D5CE09 /* ChartUtilsTests.swift in Sources */, + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, + B66817462241E3CC00017CF1 /* HorizontalBarChartTests.swift in Sources */, + 135F11CE20425AF600D655A3 /* PieChartTests.swift in Sources */, + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, + C03E6D8123DAAB2600083010 /* ChartDataTests.swift in Sources */, + 224EFF991FBAAC4700CF9B3B /* EquatableTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 06165F311D8110E600722320 /* PBXTargetDependency */ = { + 8676F8A013D87F9961E92465 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 06165F231D8110E600722320 /* Charts */; - targetProxy = 06165F301D8110E600722320 /* PBXContainerItemProxy */; + name = Charts; + target = A58A4ED274A941CA248EA921 /* Charts */; + targetProxy = C2005F425A98942473657ED2 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 06165F361D8110E700722320 /* Debug */ = { + 0EF2164C35AB4D391B503317 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MARKETING_VERSION = 3.4.0; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DD0BFDA94D4BC68192A1895 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + A17F60813C38081A2F1803D4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos macosx"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,3,4"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - WATCHOS_DEPLOYMENT_TARGET = 2.0; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - 06165F371D8110E700722320 /* Release */ = { + C5C79E736CA16C93F421E934 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos macosx"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,3,4"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - WATCHOS_DEPLOYMENT_TARGET = 2.0; - }; - name = Release; - }; - 06165F391D8110E700722320 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; }; name = Debug; }; - 06165F3A1D8110E700722320 /* Release */ = { + D9365FBCFFEE9FCFC79EC4C7 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "$(SRCROOT)/Source/Supporting Files/Info.plist"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MARKETING_VERSION = 3.4.0; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; - 06165F3C1D8110E700722320 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 063FF0401D8CC9940094A042 /* Carthage.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "$(SRCROOT)/Tests/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 06165F3D1D8110E700722320 /* Release */ = { + FA978B0A385680C0086D4D49 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 063FF0401D8CC9940094A042 /* Carthage.xcconfig */; buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "$(SRCROOT)/Tests/Supporting Files/Info.plist"; + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 06165F1E1D8110E600722320 /* Build configuration list for PBXProject "Charts" */ = { + 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */ = { isa = XCConfigurationList; buildConfigurations = ( - 06165F361D8110E700722320 /* Debug */, - 06165F371D8110E700722320 /* Release */, + C5C79E736CA16C93F421E934 /* Debug */, + A17F60813C38081A2F1803D4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 06165F381D8110E700722320 /* Build configuration list for PBXNativeTarget "Charts" */ = { + E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 06165F391D8110E700722320 /* Debug */, - 06165F3A1D8110E700722320 /* Release */, + FA978B0A385680C0086D4D49 /* Release */, + 4DD0BFDA94D4BC68192A1895 /* Debug */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 06165F3B1D8110E700722320 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { + F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */ = { isa = XCConfigurationList; buildConfigurations = ( - 06165F3C1D8110E700722320 /* Debug */, - 06165F3D1D8110E700722320 /* Release */, + D9365FBCFFEE9FCFC79EC4C7 /* Release */, + 0EF2164C35AB4D391B503317 /* Debug */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 06165F1B1D8110E600722320 /* Project object */; + rootObject = 193FC8DF32D250560C5F5D77 /* Project object */; } diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme index 4002aea0ad..2adbb36e05 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme @@ -1,6 +1,6 @@ @@ -26,31 +26,19 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - codeCoverageEnabled = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES"> - - - - - - @@ -78,8 +66,6 @@ isEnabled = "YES"> - - - - - - diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme index 1e75bd68d3..b82759f6e6 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme @@ -1,6 +1,6 @@ + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> @@ -33,15 +33,13 @@ skipped = "NO"> - - @@ -69,8 +67,6 @@ isEnabled = "YES"> - - - - - - diff --git a/Charts.xcworkspace/contents.xcworkspacedata b/Charts.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..088d4b7329 --- /dev/null +++ b/Charts.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj b/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj similarity index 60% rename from ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj rename to ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj index aa78a57d11..8437b66ad1 100644 --- a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj +++ b/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj @@ -11,24 +11,76 @@ 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; 0630AE511D81271B008859B0 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; }; 0630AE521D81271B008859B0 /* Charts.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; + 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; + 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */; }; + 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */; }; + 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */; }; + 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */; }; + 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */; }; + 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */; }; + 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */; }; + 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */; }; + 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */; }; + 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */; }; + 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */; }; + 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */; }; + 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */; }; + 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */; }; + 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */; }; + 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */; }; + 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */; }; + 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */; }; + 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */; }; + 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */; }; + 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */; }; + 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */; }; + 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */; }; + 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */; }; + 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */; }; + 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */; }; + 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */; }; + 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */; }; + 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */; }; + 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */; }; + 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */; }; + 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */; }; + 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */; }; + 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */; }; + 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */; }; + 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */; }; + 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */; }; + 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; + 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */; }; + 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; + 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */; }; + 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */; }; + 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */; }; + 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */; }; + 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */; }; + 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; + 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */; }; + 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */; }; + 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */; }; + 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */; }; + 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; + 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; + 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; + 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */; }; + 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */; }; + 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; + 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */; }; + 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; + 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */; }; + 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; }; + 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */; }; 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0CC7831ABB875400665592 /* PieChartViewController.m */; }; 5B0CC7861ABB875400665592 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; - 5B1B5DAA1E911A15006D1375 /* RealmDemosViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA81E911A15006D1375 /* RealmDemosViewController.m */; }; 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; - 5B4316271AB8D8AE0009FCAA /* Icon-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B43161F1AB8D8AE0009FCAA /* Icon-29@2x.png */; }; - 5B4316281AB8D8AE0009FCAA /* Icon-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316201AB8D8AE0009FCAA /* Icon-29@3x.png */; }; - 5B4316291AB8D8AE0009FCAA /* Icon-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316211AB8D8AE0009FCAA /* Icon-40@2x.png */; }; - 5B43162A1AB8D8AE0009FCAA /* Icon-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316221AB8D8AE0009FCAA /* Icon-40@3x.png */; }; - 5B43162B1AB8D8AE0009FCAA /* Icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316231AB8D8AE0009FCAA /* Icon-60@2x.png */; }; - 5B43162C1AB8D8AE0009FCAA /* Icon-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316241AB8D8AE0009FCAA /* Icon-60@3x.png */; }; - 5B43162D1AB8D8AE0009FCAA /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316251AB8D8AE0009FCAA /* iTunesArtwork */; }; - 5B43162E1AB8D8AE0009FCAA /* iTunesArtwork@2x in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316261AB8D8AE0009FCAA /* iTunesArtwork@2x */; }; - 5B4316351AB8D8B70009FCAA /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316311AB8D8B70009FCAA /* Default-568h@2x.png */; }; - 5B4316361AB8D8B70009FCAA /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316321AB8D8B70009FCAA /* Default-667h@2x.png */; }; - 5B4316371AB8D8B70009FCAA /* Default-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316331AB8D8B70009FCAA /* Default-736h@3x.png */; }; - 5B4316381AB8D8B70009FCAA /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B4316341AB8D8B70009FCAA /* Default@2x.png */; }; + 5B442CD223D9B0A300B1F801 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */; }; + 5B442CD323D9B0AB00B1F801 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */; }; 5B57BBB51A9B26AA0036A6CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB41A9B26AA0036A6CC /* main.m */; }; 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */; }; 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */; }; @@ -42,7 +94,6 @@ 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; 5B9624411B38608C007763E2 /* NegativeStackedBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */; }; 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; - 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */; }; 5BD47E601ABB3C91008FCEC6 /* LineChart2ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */; }; 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */; }; @@ -84,6 +135,7 @@ 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; 5BEAED401ABC1AC60013F194 /* SinusBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */; }; 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; + B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -105,12 +157,30 @@ isa = PBXContainerItemProxy; containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 06165F231D8110E600722320; + remoteGlobalIDString = A58A4ED274A941CA248EA921; + remoteInfo = Charts; + }; + 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A58A4ED274A941CA248EA921; remoteInfo = Charts; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + 225B36901F6EBBB10005B3D5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; 5BB4B0751ACA710D00E2EF4D /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -129,29 +199,47 @@ 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PiePolylineChartViewController.m; sourceTree = ""; }; 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PiePolylineChartViewController.xib; sourceTree = ""; }; 0630AE391D8126C0008859B0 /* Charts.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Charts.xcodeproj; path = ../Charts.xcodeproj; sourceTree = ""; }; - 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Carthage.xcconfig; path = ../Carthage.xcconfig; sourceTree = ""; }; + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-iOS-Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoBaseViewController.swift; sourceTree = ""; }; + 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoListViewController.swift; sourceTree = ""; }; + 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntAxisValueFormatter.swift; sourceTree = ""; }; + 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayAxisValueFormatter.swift; sourceTree = ""; }; + 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateValueFormatter.swift; sourceTree = ""; }; + 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LargeValueFormatter.swift; sourceTree = ""; }; + 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XYMarkerView.swift; sourceTree = ""; }; + 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarMarkerView.swift; sourceTree = ""; }; + 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleLinesChartViewController.swift; sourceTree = ""; }; + 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleBarChartViewController.swift; sourceTree = ""; }; + 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HalfPieChartViewController.swift; sourceTree = ""; }; + 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartTimeViewController.swift; sourceTree = ""; }; + 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColoredLineChartViewController.swift; sourceTree = ""; }; + 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart2ViewController.swift; sourceTree = ""; }; + 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart1ViewController.swift; sourceTree = ""; }; + 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NegativeStackedBarChartViewController.swift; sourceTree = ""; }; + 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScatterChartViewController.swift; sourceTree = ""; }; + 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedBarChartViewController.swift; sourceTree = ""; }; + 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleChartViewController.swift; sourceTree = ""; }; + 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartFilledViewController.swift; sourceTree = ""; }; + 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PositiveNegativeBarChartViewController.swift; sourceTree = ""; }; + 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnotherBarChartViewController.swift; sourceTree = ""; }; + 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PieChartViewController.swift; sourceTree = ""; }; + 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CubicLineChartViewController.swift; sourceTree = ""; }; + 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarChartViewController.swift; sourceTree = ""; }; + 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalBarChartViewController.swift; sourceTree = ""; }; + 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PiePolylineChartViewController.swift; sourceTree = ""; }; + 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombinedChartViewController.swift; sourceTree = ""; }; + 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarChartViewController.swift; sourceTree = ""; }; + 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinusBarChartViewController.swift; sourceTree = ""; }; + 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CandleStickChartViewController.swift; sourceTree = ""; }; 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BubbleChartViewController.xib; sourceTree = ""; }; 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BubbleChartViewController.h; sourceTree = ""; }; 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BubbleChartViewController.m; sourceTree = ""; }; 5B0CC7821ABB875400665592 /* PieChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieChartViewController.h; sourceTree = ""; }; 5B0CC7831ABB875400665592 /* PieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PieChartViewController.m; sourceTree = ""; }; 5B0CC7841ABB875400665592 /* PieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PieChartViewController.xib; sourceTree = ""; }; - 5B1B5DA71E911A15006D1375 /* RealmDemosViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RealmDemosViewController.h; path = Classes/RealmDemosViewController.h; sourceTree = SOURCE_ROOT; }; - 5B1B5DA81E911A15006D1375 /* RealmDemosViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RealmDemosViewController.m; path = Classes/RealmDemosViewController.m; sourceTree = SOURCE_ROOT; }; - 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RealmDemosViewController.xib; path = Classes/RealmDemosViewController.xib; sourceTree = SOURCE_ROOT; }; - 5B43161F1AB8D8AE0009FCAA /* Icon-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-29@2x.png"; sourceTree = ""; }; - 5B4316201AB8D8AE0009FCAA /* Icon-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-29@3x.png"; sourceTree = ""; }; - 5B4316211AB8D8AE0009FCAA /* Icon-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-40@2x.png"; sourceTree = ""; }; - 5B4316221AB8D8AE0009FCAA /* Icon-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-40@3x.png"; sourceTree = ""; }; - 5B4316231AB8D8AE0009FCAA /* Icon-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-60@2x.png"; sourceTree = ""; }; - 5B4316241AB8D8AE0009FCAA /* Icon-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-60@3x.png"; sourceTree = ""; }; - 5B4316251AB8D8AE0009FCAA /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = ""; }; - 5B4316261AB8D8AE0009FCAA /* iTunesArtwork@2x */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunesArtwork@2x"; sourceTree = ""; }; - 5B4316311AB8D8B70009FCAA /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; - 5B4316321AB8D8B70009FCAA /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h@2x.png"; sourceTree = ""; }; - 5B4316331AB8D8B70009FCAA /* Default-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h@3x.png"; sourceTree = ""; }; - 5B4316341AB8D8B70009FCAA /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChartsDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RealmDemosViewController.xib; path = XIBs/Demos/RealmDemosViewController.xib; sourceTree = SOURCE_ROOT; }; + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 5B57BBB31A9B26AA0036A6CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5B57BBB41A9B26AA0036A6CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -170,7 +258,7 @@ 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NegativeStackedBarChartViewController.h; sourceTree = ""; }; 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NegativeStackedBarChartViewController.m; sourceTree = ""; }; 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NegativeStackedBarChartViewController.xib; sourceTree = ""; }; - 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BalloonMarker.swift; sourceTree = ""; }; + 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BalloonMarker.swift; path = "../../Objective-C/Components/BalloonMarker.swift"; sourceTree = ""; }; 5BD47E5C1ABB0273008FCEC6 /* ChartsDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ChartsDemo-Bridging-Header.h"; sourceTree = ""; }; 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChart2ViewController.h; sourceTree = ""; }; 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChart2ViewController.m; sourceTree = ""; }; @@ -235,9 +323,18 @@ 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinusBarChartViewController.h; sourceTree = ""; }; 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SinusBarChartViewController.m; sourceTree = ""; }; 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SinusBarChartViewController.xib; sourceTree = ""; }; + B64D06EA1FB199130067418D /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 225B361A1F6EB9A50005B3D5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5B57BBAC1A9B26AA0036A6CC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -258,37 +355,117 @@ name = Products; sourceTree = ""; }; - 5B43161E1AB8D8AE0009FCAA /* app-icon */ = { + 225B361E1F6EB9A50005B3D5 /* Swift */ = { + isa = PBXGroup; + children = ( + 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */, + 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */, + 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */, + 225B363C1F6EBA180005B3D5 /* Components */, + 225B36331F6EB9FE0005B3D5 /* Formatters */, + 225B36431F6EBA410005B3D5 /* Demos */, + ); + path = Swift; + sourceTree = ""; + }; + 225B36331F6EB9FE0005B3D5 /* Formatters */ = { + isa = PBXGroup; + children = ( + 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */, + 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */, + 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */, + 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */, + ); + path = Formatters; + sourceTree = ""; + }; + 225B363C1F6EBA180005B3D5 /* Components */ = { + isa = PBXGroup; + children = ( + 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */, + 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */, + 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */, + ); + path = Components; + sourceTree = ""; + }; + 225B36431F6EBA410005B3D5 /* Demos */ = { isa = PBXGroup; children = ( - 5B43161F1AB8D8AE0009FCAA /* Icon-29@2x.png */, - 5B4316201AB8D8AE0009FCAA /* Icon-29@3x.png */, - 5B4316211AB8D8AE0009FCAA /* Icon-40@2x.png */, - 5B4316221AB8D8AE0009FCAA /* Icon-40@3x.png */, - 5B4316231AB8D8AE0009FCAA /* Icon-60@2x.png */, - 5B4316241AB8D8AE0009FCAA /* Icon-60@3x.png */, - 5B4316251AB8D8AE0009FCAA /* iTunesArtwork */, - 5B4316261AB8D8AE0009FCAA /* iTunesArtwork@2x */, - ); - path = "app-icon"; + 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */, + 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */, + 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */, + 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */, + 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */, + 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */, + 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */, + 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */, + 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */, + 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */, + 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */, + 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */, + 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */, + 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */, + 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */, + 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */, + 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */, + 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */, + 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */, + 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */, + 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */, + 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */, + 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */, + ); + path = Demos; sourceTree = ""; }; - 5B4316301AB8D8B70009FCAA /* launch-image */ = { + 227136F41F6EB665006D2A11 /* XIBs */ = { isa = PBXGroup; children = ( - 5B4316311AB8D8B70009FCAA /* Default-568h@2x.png */, - 5B4316321AB8D8B70009FCAA /* Default-667h@2x.png */, - 5B4316331AB8D8B70009FCAA /* Default-736h@3x.png */, - 5B4316341AB8D8B70009FCAA /* Default@2x.png */, + 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */, + 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */, + 227136F61F6EB69D006D2A11 /* Demos */, ); - path = "launch-image"; + path = XIBs; + sourceTree = ""; + }; + 227136F61F6EB69D006D2A11 /* Demos */ = { + isa = PBXGroup; + children = ( + 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */, + 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */, + 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */, + 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */, + 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */, + 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */, + 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */, + 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */, + 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */, + 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */, + 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */, + 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */, + 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */, + 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */, + 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */, + 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */, + 5B0CC7841ABB875400665592 /* PieChartViewController.xib */, + 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */, + 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */, + 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */, + 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */, + 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */, + 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */, + 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */, + ); + path = Demos; sourceTree = ""; }; 5B57BBA61A9B26AA0036A6CC = { isa = PBXGroup; children = ( - 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */, - 5B57BBB11A9B26AA0036A6CC /* Classes */, + 5B57BBB11A9B26AA0036A6CC /* Objective-C */, + 225B361E1F6EB9A50005B3D5 /* Swift */, + 227136F41F6EB665006D2A11 /* XIBs */, 5B8EAF2E1AB32E15009697AA /* Resources */, 5B57BBB21A9B26AA0036A6CC /* Supporting Files */, 5B57BBB01A9B26AA0036A6CC /* Products */, @@ -299,26 +476,26 @@ 5B57BBB01A9B26AA0036A6CC /* Products */ = { isa = PBXGroup; children = ( - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */, + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */, + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */, ); name = Products; sourceTree = ""; }; - 5B57BBB11A9B26AA0036A6CC /* Classes */ = { + 5B57BBB11A9B26AA0036A6CC /* Objective-C */ = { isa = PBXGroup; children = ( 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */, 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */, 5B57BBB91A9B26AA0036A6CC /* DemoListViewController.h */, 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */, - 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */, 5B8EAF251AB32CF5009697AA /* DemoBaseViewController.h */, 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */, 5BE377D41D42511A006EB34F /* Formatters */, 5BD47E541ABB0177008FCEC6 /* Components */, 5BD8F06F1AB89C7100566E05 /* Demos */, ); - path = Classes; + path = "Objective-C"; sourceTree = ""; }; 5B57BBB21A9B26AA0036A6CC /* Supporting Files */ = { @@ -342,9 +519,8 @@ 5B8EAF2E1AB32E15009697AA /* Resources */ = { isa = PBXGroup; children = ( + B64D06EA1FB199130067418D /* Launch Screen.storyboard */, 5B8EAF2F1AB32E15009697AA /* Images.xcassets */, - 5B43161E1AB8D8AE0009FCAA /* app-icon */, - 5B4316301AB8D8B70009FCAA /* launch-image */, 5B613DA21D526AD5000F1E98 /* markers */, ); path = Resources; @@ -353,9 +529,7 @@ 5BD47E541ABB0177008FCEC6 /* Components */ = { isa = PBXGroup; children = ( - 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */, 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */, - 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */, 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */, ); path = Components; @@ -366,76 +540,50 @@ children = ( 5BEAED0F1ABBFB2B0013F194 /* AnotherBarChartViewController.h */, 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */, - 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */, 5BD47E621ABB424E008FCEC6 /* BarChartViewController.h */, 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */, - 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */, 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */, 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */, - 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */, 5BEAED291ABC160F0013F194 /* CandleStickChartViewController.h */, 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */, - 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */, 5BEAED381ABC199F0013F194 /* ColoredLineChartViewController.h */, 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */, - 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */, 5BDEDC441ABB871E007D3A60 /* CombinedChartViewController.h */, 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */, - 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */, 5BEAED2E1ABC18F00013F194 /* CubicLineChartViewController.h */, 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */, - 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */, 5BE6737D1D5B496500A87BA2 /* HalfPieChartViewController.h */, 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */, - 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */, 5BDEDC3E1ABB7F73007D3A60 /* HorizontalBarChartViewController.h */, 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */, - 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */, 5BD8F0711AB89CE500566E05 /* LineChart1ViewController.h */, 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */, - 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */, 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */, 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */, - 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */, 5BE6738C1D5B4E0900A87BA2 /* LineChartFilledViewController.h */, 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */, - 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */, 5BE6738F1D5B4E0900A87BA2 /* LineChartTimeViewController.h */, 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */, - 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */, 5BEAED1F1ABC0BE20013F194 /* MultipleBarChartViewController.h */, 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */, - 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */, 5BEAED221ABC0BE20013F194 /* MultipleLinesChartViewController.h */, 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */, - 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */, 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */, 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */, - 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */, 5B0CC7821ABB875400665592 /* PieChartViewController.h */, 5B0CC7831ABB875400665592 /* PieChartViewController.m */, - 5B0CC7841ABB875400665592 /* PieChartViewController.xib */, 0439A3511C9FF95F00496F83 /* PiePolylineChartViewController.h */, 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */, - 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */, 5BE7E75F1C693098000A0377 /* PositiveNegativeBarChartViewController.h */, 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */, - 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */, 5BEAED331ABC192F0013F194 /* RadarChartViewController.h */, 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */, - 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */, - 5B1B5DA71E911A15006D1375 /* RealmDemosViewController.h */, - 5B1B5DA81E911A15006D1375 /* RealmDemosViewController.m */, - 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */, 5BEAED151ABBFB340013F194 /* ScatterChartViewController.h */, 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */, - 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */, 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */, 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */, - 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */, 5BEAED181ABBFB340013F194 /* StackedBarChartViewController.h */, 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */, - 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */, ); path = Demos; sourceTree = ""; @@ -457,9 +605,28 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */ = { + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS-Swift" */; + buildPhases = ( + 225B36191F6EB9A50005B3D5 /* Sources */, + 225B361A1F6EB9A50005B3D5 /* Frameworks */, + 225B361B1F6EB9A50005B3D5 /* Resources */, + 225B36901F6EBBB10005B3D5 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */, + ); + name = "ChartsDemo-iOS-Swift"; + productName = "ChartsDemo-Swift"; + productReference = 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */; + productType = "com.apple.product-type.application"; + }; + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */; + buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS" */; buildPhases = ( 5B57BBAB1A9B26AA0036A6CC /* Sources */, 5B57BBAC1A9B26AA0036A6CC /* Frameworks */, @@ -471,9 +638,9 @@ dependencies = ( 0630AE541D81271B008859B0 /* PBXTargetDependency */, ); - name = ChartsDemo; + name = "ChartsDemo-iOS"; productName = chartstest; - productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */; + productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -484,18 +651,23 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = dcg; TargetAttributes = { + 225B361C1F6EB9A50005B3D5 = { + CreatedOnToolsVersion = 9.0; + LastSwiftMigration = 1000; + }; 5B57BBAE1A9B26AA0036A6CC = { CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; + ProvisioningStyle = Manual; }; }; }; - buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */; + buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo-iOS" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -512,7 +684,8 @@ ); projectRoot = ""; targets = ( - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */, + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo-iOS */, + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift */, ); }; /* End PBXProject section */ @@ -535,30 +708,59 @@ /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ + 225B361B1F6EB9A50005B3D5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */, + 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */, + 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */, + 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */, + 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */, + 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */, + 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */, + 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */, + 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */, + 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */, + 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */, + 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */, + 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */, + 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */, + 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */, + 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */, + 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */, + 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */, + 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */, + 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */, + 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */, + 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */, + 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */, + 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */, + 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */, + 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */, + 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */, + 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */, + 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5B57BBAD1A9B26AA0036A6CC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */, 5BE673931D5B4E0900A87BA2 /* LineChartFilledViewController.xib in Resources */, - 5B43162B1AB8D8AE0009FCAA /* Icon-60@2x.png in Resources */, - 5B43162E1AB8D8AE0009FCAA /* iTunesArtwork@2x in Resources */, - 5B4316281AB8D8AE0009FCAA /* Icon-29@3x.png in Resources */, - 5B4316361AB8D8B70009FCAA /* Default-667h@2x.png in Resources */, 5BEAED2D1ABC160F0013F194 /* CandleStickChartViewController.xib in Resources */, 5B613DB51D526EA8000F1E98 /* RadarMarkerView.xib in Resources */, 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */, 5BEAED131ABBFB2B0013F194 /* AnotherBarChartViewController.xib in Resources */, 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */, 5BEAED371ABC192F0013F194 /* RadarChartViewController.xib in Resources */, - 5B4316351AB8D8B70009FCAA /* Default-568h@2x.png in Resources */, 5B8EAF241AB3271B009697AA /* DemoListViewController.xib in Resources */, 5BEAED261ABC0BE20013F194 /* MultipleBarChartViewController.xib in Resources */, - 5B43162A1AB8D8AE0009FCAA /* Icon-40@3x.png in Resources */, 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */, 5BEAED321ABC18F00013F194 /* CubicLineChartViewController.xib in Resources */, 5BEAED281ABC0BE20013F194 /* MultipleLinesChartViewController.xib in Resources */, - 5B4316381AB8D8B70009FCAA /* Default@2x.png in Resources */, 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */, 5B613DA41D526AD5000F1E98 /* radar_marker@3x.png in Resources */, 5BE7E7631C693098000A0377 /* PositiveNegativeBarChartViewController.xib in Resources */, @@ -567,36 +769,72 @@ 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */, 5BD8F0751AB89CE500566E05 /* LineChart1ViewController.xib in Resources */, 5BE673811D5B496500A87BA2 /* HalfPieChartViewController.xib in Resources */, - 5B43162D1AB8D8AE0009FCAA /* iTunesArtwork in Resources */, + B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */, 5BD47E661ABB424E008FCEC6 /* BarChartViewController.xib in Resources */, 5BDEDC421ABB7F73007D3A60 /* HorizontalBarChartViewController.xib in Resources */, 5BDEDC481ABB871E007D3A60 /* CombinedChartViewController.xib in Resources */, - 5B4316371AB8D8B70009FCAA /* Default-736h@3x.png in Resources */, 5BE673951D5B4E0900A87BA2 /* LineChartTimeViewController.xib in Resources */, - 5B4316291AB8D8AE0009FCAA /* Icon-40@2x.png in Resources */, 5BEAED1E1ABBFB340013F194 /* StackedBarChartViewController.xib in Resources */, - 5B4316271AB8D8AE0009FCAA /* Icon-29@2x.png in Resources */, 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */, 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */, - 5B43162C1AB8D8AE0009FCAA /* Icon-60@3x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 225B36191F6EB9A50005B3D5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */, + 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */, + 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */, + 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */, + 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */, + 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */, + 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */, + 5B442CD223D9B0A300B1F801 /* BalloonMarker.swift in Sources */, + 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */, + 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */, + 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */, + 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */, + 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */, + 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */, + 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */, + 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */, + 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */, + 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */, + 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */, + 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */, + 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */, + 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */, + 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */, + 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */, + 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */, + 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */, + 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */, + 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */, + 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */, + 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */, + 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */, + 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */, + 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5B57BBAB1A9B26AA0036A6CC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 5B613DF21D5A60DF000F1E98 /* LargeValueFormatter.swift in Sources */, - 5B1B5DAA1E911A15006D1375 /* RealmDemosViewController.m in Sources */, 5BEAED1B1ABBFB340013F194 /* ScatterChartViewController.m in Sources */, 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */, 0439A3541C9FF95F00496F83 /* PiePolylineChartViewController.m in Sources */, 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */, 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */, 5BDEDC471ABB871E007D3A60 /* CombinedChartViewController.m in Sources */, + 5B442CD323D9B0AB00B1F801 /* BalloonMarker.swift in Sources */, 5BE377F21D47FDF1006EB34F /* IntAxisValueFormatter.m in Sources */, 5BD8F0741AB89CE500566E05 /* LineChart1ViewController.m in Sources */, 5BE377DE1D425151006EB34F /* DayAxisValueFormatter.m in Sources */, @@ -606,7 +844,6 @@ 5BEAED251ABC0BE20013F194 /* MultipleBarChartViewController.m in Sources */, 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */, 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */, - 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */, 5BEAED2C1ABC160F0013F194 /* CandleStickChartViewController.m in Sources */, 5BEAED271ABC0BE20013F194 /* MultipleLinesChartViewController.m in Sources */, 5BE6739A1D5BAD7E00A87BA2 /* DateValueFormatter.m in Sources */, @@ -635,30 +872,101 @@ name = Charts; targetProxy = 0630AE531D81271B008859B0 /* PBXContainerItemProxy */; }; + 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Charts; + targetProxy = 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 225B362D1F6EB9A50005B3D5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 225B362E1F6EB9A50005B3D5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; 5B57BBD01A9B26AA0036A6CC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -677,34 +985,42 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; }; name = Debug; }; 5B57BBD11A9B26AA0036A6CC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -716,57 +1032,67 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; }; name = Release; }; 5B57BBD31A9B26AA0036A6CC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; INFOPLIST_FILE = "Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + PRODUCT_NAME = "ChartsDemo-iOS"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; 5B57BBD41A9B26AA0036A6CC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 066750AC1E2DB68D00E22DC6 /* Carthage.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; INFOPLIST_FILE = "Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + PRODUCT_NAME = "ChartsDemo-iOS"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; - SWIFT_VERSION = 3.0; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; + SWIFT_VERSION = 5.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */ = { + 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS-Swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 225B362D1F6EB9A50005B3D5 /* Debug */, + 225B362E1F6EB9A50005B3D5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 5B57BBD01A9B26AA0036A6CC /* Debug */, @@ -775,7 +1101,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */ = { + 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 5B57BBD31A9B26AA0036A6CC /* Debug */, diff --git a/ChartsDemo/Classes/AppDelegate.h b/ChartsDemo-iOS/Objective-C/AppDelegate.h similarity index 100% rename from ChartsDemo/Classes/AppDelegate.h rename to ChartsDemo-iOS/Objective-C/AppDelegate.h diff --git a/ChartsDemo/Classes/AppDelegate.m b/ChartsDemo-iOS/Objective-C/AppDelegate.m similarity index 100% rename from ChartsDemo/Classes/AppDelegate.m rename to ChartsDemo-iOS/Objective-C/AppDelegate.m diff --git a/ChartsDemo/Classes/Components/BalloonMarker.swift b/ChartsDemo-iOS/Objective-C/Components/BalloonMarker.swift similarity index 50% rename from ChartsDemo/Classes/Components/BalloonMarker.swift rename to ChartsDemo-iOS/Objective-C/Components/BalloonMarker.swift index ce9284675f..b36c3fe0b1 100644 --- a/ChartsDemo/Classes/Components/BalloonMarker.swift +++ b/ChartsDemo-iOS/Objective-C/Components/BalloonMarker.swift @@ -11,26 +11,26 @@ import Foundation import Charts - +#if canImport(UIKit) + import UIKit +#endif open class BalloonMarker: MarkerImage { - open var color: UIColor? - open var arrowSize = CGSize(width: 15, height: 11) - open var font: UIFont? - open var textColor: UIColor? - open var insets = UIEdgeInsets() - open var minimumSize = CGSize() + @objc open var color: UIColor + @objc open var arrowSize = CGSize(width: 15, height: 11) + @objc open var font: UIFont + @objc open var textColor: UIColor + @objc open var insets: UIEdgeInsets + @objc open var minimumSize = CGSize() fileprivate var label: String? fileprivate var _labelSize: CGSize = CGSize() fileprivate var _paragraphStyle: NSMutableParagraphStyle? - fileprivate var _drawAttributes = [String : AnyObject]() + fileprivate var _drawAttributes = [NSAttributedString.Key : Any]() - public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets) + @objc public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets) { - super.init() - self.color = color self.font = font self.textColor = textColor @@ -38,15 +38,52 @@ open class BalloonMarker: MarkerImage _paragraphStyle = NSParagraphStyle.default.mutableCopy() as? NSMutableParagraphStyle _paragraphStyle?.alignment = .center + super.init() } open override func offsetForDrawing(atPoint point: CGPoint) -> CGPoint { - let size = self.size - var point = point - point.x -= size.width / 2.0 - point.y -= size.height - return super.offsetForDrawing(atPoint: point) + var offset = self.offset + var size = self.size + + if size.width == 0.0 && image != nil + { + size.width = image!.size.width + } + if size.height == 0.0 && image != nil + { + size.height = image!.size.height + } + + let width = size.width + let height = size.height + let padding: CGFloat = 8.0 + + var origin = point + origin.x -= width / 2 + origin.y -= height + + if origin.x + offset.x < 0.0 + { + offset.x = -origin.x + padding + } + else if let chart = chartView, + origin.x + width + offset.x > chart.bounds.size.width + { + offset.x = chart.bounds.size.width - origin.x - width - padding + } + + if origin.y + offset.y < 0 + { + offset.y = height + padding; + } + else if let chart = chartView, + origin.y + height + offset.y > chart.bounds.size.height + { + offset.y = chart.bounds.size.height - origin.y - height - padding + } + + return offset } open override func draw(context: CGContext, point: CGPoint) @@ -65,10 +102,41 @@ open class BalloonMarker: MarkerImage rect.origin.y -= size.height context.saveGState() - - if let color = color + + context.setFillColor(color.cgColor) + + if offset.y > 0 + { + context.beginPath() + context.move(to: CGPoint( + x: rect.origin.x, + y: rect.origin.y + arrowSize.height)) + context.addLine(to: CGPoint( + x: rect.origin.x + (rect.size.width - arrowSize.width) / 2.0, + y: rect.origin.y + arrowSize.height)) + //arrow vertex + context.addLine(to: CGPoint( + x: point.x, + y: point.y)) + context.addLine(to: CGPoint( + x: rect.origin.x + (rect.size.width + arrowSize.width) / 2.0, + y: rect.origin.y + arrowSize.height)) + context.addLine(to: CGPoint( + x: rect.origin.x + rect.size.width, + y: rect.origin.y + arrowSize.height)) + context.addLine(to: CGPoint( + x: rect.origin.x + rect.size.width, + y: rect.origin.y + rect.size.height)) + context.addLine(to: CGPoint( + x: rect.origin.x, + y: rect.origin.y + rect.size.height)) + context.addLine(to: CGPoint( + x: rect.origin.x, + y: rect.origin.y + arrowSize.height)) + context.fillPath() + } + else { - context.setFillColor(color.cgColor) context.beginPath() context.move(to: CGPoint( x: rect.origin.x, @@ -82,9 +150,10 @@ open class BalloonMarker: MarkerImage context.addLine(to: CGPoint( x: rect.origin.x + (rect.size.width + arrowSize.width) / 2.0, y: rect.origin.y + rect.size.height - arrowSize.height)) + //arrow vertex context.addLine(to: CGPoint( - x: rect.origin.x + rect.size.width / 2.0, - y: rect.origin.y + rect.size.height)) + x: point.x, + y: point.y)) context.addLine(to: CGPoint( x: rect.origin.x + (rect.size.width - arrowSize.width) / 2.0, y: rect.origin.y + rect.size.height - arrowSize.height)) @@ -97,7 +166,12 @@ open class BalloonMarker: MarkerImage context.fillPath() } - rect.origin.y += self.insets.top + if offset.y > 0 { + rect.origin.y += self.insets.top + arrowSize.height + } else { + rect.origin.y += self.insets.top + } + rect.size.height -= self.insets.top + self.insets.bottom UIGraphicsPushContext(context) @@ -114,16 +188,16 @@ open class BalloonMarker: MarkerImage setLabel(String(entry.y)) } - open func setLabel(_ newLabel: String) + @objc open func setLabel(_ newLabel: String) { label = newLabel _drawAttributes.removeAll() - _drawAttributes[NSFontAttributeName] = self.font - _drawAttributes[NSParagraphStyleAttributeName] = _paragraphStyle - _drawAttributes[NSForegroundColorAttributeName] = self.textColor + _drawAttributes[.font] = self.font + _drawAttributes[.paragraphStyle] = _paragraphStyle + _drawAttributes[.foregroundColor] = self.textColor - _labelSize = label?.size(attributes: _drawAttributes) ?? CGSize.zero + _labelSize = label?.size(withAttributes: _drawAttributes) ?? CGSize.zero var size = CGSize() size.width = _labelSize.width + self.insets.left + self.insets.right diff --git a/ChartsDemo/Classes/Components/RadarMarkerView.swift b/ChartsDemo-iOS/Objective-C/Components/RadarMarkerView.swift similarity index 93% rename from ChartsDemo/Classes/Components/RadarMarkerView.swift rename to ChartsDemo-iOS/Objective-C/Components/RadarMarkerView.swift index 6f286bf013..c0d62a3d19 100644 --- a/ChartsDemo/Classes/Components/RadarMarkerView.swift +++ b/ChartsDemo-iOS/Objective-C/Components/RadarMarkerView.swift @@ -11,6 +11,9 @@ import Foundation import Charts +#if canImport(UIKit) + import UIKit +#endif open class RadarMarkerView: MarkerView { diff --git a/ChartsDemo/Classes/Components/XYMarkerView.swift b/ChartsDemo-iOS/Objective-C/Components/XYMarkerView.swift similarity index 79% rename from ChartsDemo/Classes/Components/XYMarkerView.swift rename to ChartsDemo-iOS/Objective-C/Components/XYMarkerView.swift index a3e91d0804..f985bd50f0 100644 --- a/ChartsDemo/Classes/Components/XYMarkerView.swift +++ b/ChartsDemo-iOS/Objective-C/Components/XYMarkerView.swift @@ -6,13 +6,16 @@ import Foundation import Charts +#if canImport(UIKit) + import UIKit +#endif open class XYMarkerView: BalloonMarker { - open var xAxisValueFormatter: IAxisValueFormatter? + @objc open var xAxisValueFormatter: IAxisValueFormatter? fileprivate var yFormatter = NumberFormatter() - public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets, + @objc public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets, xAxisValueFormatter: IAxisValueFormatter) { super.init(color: color, font: font, textColor: textColor, insets: insets) diff --git a/ChartsDemo/Classes/DemoBaseViewController.h b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h similarity index 96% rename from ChartsDemo/Classes/DemoBaseViewController.h rename to ChartsDemo-iOS/Objective-C/DemoBaseViewController.h index 3fe7ed2230..fd31bfd7da 100644 --- a/ChartsDemo/Classes/DemoBaseViewController.h +++ b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h @@ -10,7 +10,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DemoBaseViewController : UIViewController { diff --git a/ChartsDemo/Classes/DemoBaseViewController.m b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m similarity index 94% rename from ChartsDemo/Classes/DemoBaseViewController.m rename to ChartsDemo-iOS/Objective-C/DemoBaseViewController.m index c5908a844c..4e6392a91d 100644 --- a/ChartsDemo/Classes/DemoBaseViewController.m +++ b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m @@ -170,7 +170,8 @@ - (IBAction)optionsButtonTapped:(id)sender _optionsTableView.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.9f]; _optionsTableView.delegate = self; _optionsTableView.dataSource = self; - + [_optionsTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; + _optionsTableView.translatesAutoresizingMaskIntoConstraints = NO; NSMutableArray *constraints = [[NSMutableArray alloc] init]; @@ -224,23 +225,14 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - if (tableView == _optionsTableView) - { - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; - if (!cell) - { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; - cell.backgroundView = nil; - cell.backgroundColor = UIColor.clearColor; - cell.textLabel.textColor = UIColor.whiteColor; - } - - cell.textLabel.text = self.options[indexPath.row][@"label"]; - - return cell; - } - - return nil; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; + cell.backgroundView = nil; + cell.backgroundColor = UIColor.clearColor; + cell.textLabel.textColor = UIColor.whiteColor; + + cell.textLabel.text = self.options[indexPath.row][@"label"]; + + return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath diff --git a/ChartsDemo/Classes/DemoListViewController.h b/ChartsDemo-iOS/Objective-C/DemoListViewController.h similarity index 100% rename from ChartsDemo/Classes/DemoListViewController.h rename to ChartsDemo-iOS/Objective-C/DemoListViewController.h diff --git a/ChartsDemo/Classes/DemoListViewController.m b/ChartsDemo-iOS/Objective-C/DemoListViewController.m similarity index 96% rename from ChartsDemo/Classes/DemoListViewController.m rename to ChartsDemo-iOS/Objective-C/DemoListViewController.m index d1f2f0dc78..77576d0321 100644 --- a/ChartsDemo/Classes/DemoListViewController.m +++ b/ChartsDemo-iOS/Objective-C/DemoListViewController.m @@ -33,7 +33,6 @@ #import "LineChartTimeViewController.h" #import "LineChartFilledViewController.h" #import "HalfPieChartViewController.h" -#import "RealmDemosViewController.h" @interface DemoListViewController () @@ -168,12 +167,6 @@ - (void)viewDidLoad @"title": @"Half Pie Chart", @"subtitle": @"This demonstrates how to create a 180 degree PieChart.", @"class": HalfPieChartViewController.class - }, - - @{ - @"title": @"Realm.io database", - @"subtitle": @"This demonstrates how to use this library with Realm.io mobile database.", - @"class": RealmDemosViewController.class } ]; //FIXME: Add TimeLineChart diff --git a/ChartsDemo/Classes/Demos/AnotherBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/AnotherBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/AnotherBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m similarity index 96% rename from ChartsDemo/Classes/Demos/AnotherBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m index 91168fee79..65439bc914 100644 --- a/ChartsDemo/Classes/Demos/AnotherBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m @@ -10,7 +10,7 @@ // #import "AnotherBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface AnotherBarChartViewController () @@ -97,13 +97,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (BarChartDataSet *)_chartView.data.dataSets[0]; - set1.values = yVals; + [set1 replaceEntries:yVals]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@"DataSet"]; + set1 = [[BarChartDataSet alloc] initWithEntries:yVals label:@"DataSet"]; set1.colors = ChartColorTemplates.vordiplom; set1.drawValuesEnabled = NO; diff --git a/ChartsDemo/Classes/Demos/BarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/BarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/BarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/BarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m index d134a03dcd..5e1567c088 100644 --- a/ChartsDemo/Classes/Demos/BarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m @@ -10,7 +10,7 @@ // #import "BarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "DayAxisValueFormatter.h" @interface BarChartViewController () @@ -148,13 +148,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (BarChartDataSet *)_chartView.data.dataSets[0]; - set1.values = yVals; + [set1 replaceEntries: yVals]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@"The year 2017"]; + set1 = [[BarChartDataSet alloc] initWithEntries:yVals label:@"The year 2017"]; [set1 setColors:ChartColorTemplates.material]; set1.drawIconsEnabled = NO; diff --git a/ChartsDemo/Classes/Demos/BubbleChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/BubbleChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.h diff --git a/ChartsDemo/Classes/Demos/BubbleChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/BubbleChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m index c12ad9271b..9d32596674 100644 --- a/ChartsDemo/Classes/Demos/BubbleChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m @@ -10,7 +10,7 @@ // #import "BubbleChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface BubbleChartViewController () @@ -115,18 +115,17 @@ - (void)setDataCount:(int)count range:(double)range [yVals3 addObject:[[BubbleChartDataEntry alloc] initWithX:i y:val size:size]]; } - BubbleChartDataSet *set1 = [[BubbleChartDataSet alloc] initWithValues:yVals1 label:@"DS 1"]; + BubbleChartDataSet *set1 = [[BubbleChartDataSet alloc] initWithEntries:yVals1 label:@"DS 1"]; set1.drawIconsEnabled = NO; [set1 setColor:ChartColorTemplates.colorful[0] alpha:0.50f]; [set1 setDrawValuesEnabled:YES]; - BubbleChartDataSet *set2 = [[BubbleChartDataSet alloc] initWithValues:yVals2 label:@"DS 2"]; - set1.drawIconsEnabled = NO; + BubbleChartDataSet *set2 = [[BubbleChartDataSet alloc] initWithEntries:yVals2 label:@"DS 2"]; set2.iconsOffset = CGPointMake(0, 15); [set2 setColor:ChartColorTemplates.colorful[1] alpha:0.50f]; [set2 setDrawValuesEnabled:YES]; - BubbleChartDataSet *set3 = [[BubbleChartDataSet alloc] initWithValues:yVals3 label:@"DS 3"]; + BubbleChartDataSet *set3 = [[BubbleChartDataSet alloc] initWithEntries:yVals3 label:@"DS 3"]; [set3 setColor:ChartColorTemplates.colorful[2] alpha:0.50f]; [set3 setDrawValuesEnabled:YES]; diff --git a/ChartsDemo/Classes/Demos/CandleStickChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/CandleStickChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.h diff --git a/ChartsDemo/Classes/Demos/CandleStickChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m similarity index 92% rename from ChartsDemo/Classes/Demos/CandleStickChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m index 2fe219de28..25a0e73ca3 100644 --- a/ChartsDemo/Classes/Demos/CandleStickChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m @@ -10,7 +10,7 @@ // #import "CandleStickChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface CandleStickChartViewController () @@ -41,6 +41,7 @@ - (void)viewDidLoad @{@"key": @"togglePinchZoom", @"label": @"Toggle PinchZoom"}, @{@"key": @"toggleAutoScaleMinMax", @"label": @"Toggle auto scale min/max"}, @{@"key": @"toggleShadowColorSameAsCandle", @"label": @"Toggle shadow same color"}, + @{@"key": @"toggleShowCandleBar", @"label": @"Toggle show candle bar"}, @{@"key": @"toggleData", @"label": @"Toggle Data"}, ]; @@ -104,7 +105,7 @@ - (void)setDataCount:(int)count range:(double)range [yVals1 addObject:[[CandleChartDataEntry alloc] initWithX:i shadowH:val + high shadowL:val - low open:even ? val + open : val - open close:even ? val - close : val + close icon: [UIImage imageNamed:@"icon"]]]; } - CandleChartDataSet *set1 = [[CandleChartDataSet alloc] initWithValues:yVals1 label:@"Data Set"]; + CandleChartDataSet *set1 = [[CandleChartDataSet alloc] initWithEntries:yVals1 label:@"Data Set"]; set1.axisDependency = AxisDependencyLeft; [set1 setColor:[UIColor colorWithWhite:80/255.f alpha:1.f]]; @@ -132,6 +133,15 @@ - (void)optionTapped:(NSString *)key set.shadowColorSameAsCandle = !set.shadowColorSameAsCandle; } + [_chartView notifyDataSetChanged]; + return; + } else if ([key isEqualToString:@"toggleShowCandleBar"]) + { + for (id set in _chartView.data.dataSets) + { + set.showCandleBar = !set.showCandleBar; + } + [_chartView notifyDataSetChanged]; return; } diff --git a/ChartsDemo/Classes/Demos/ColoredLineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/ColoredLineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.h diff --git a/ChartsDemo/Classes/Demos/ColoredLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m similarity index 96% rename from ChartsDemo/Classes/Demos/ColoredLineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m index ee4fed4768..520770f206 100644 --- a/ChartsDemo/Classes/Demos/ColoredLineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m @@ -10,7 +10,7 @@ // #import "ColoredLineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface ColoredLineChartViewController () @@ -86,7 +86,7 @@ - (LineChartData *)dataWithCount:(int)count range:(double)range [yVals addObject:[[ChartDataEntry alloc] initWithX:i y:val]]; } - LineChartDataSet *set1 = [[LineChartDataSet alloc] initWithValues:yVals label:@"DataSet 1"]; + LineChartDataSet *set1 = [[LineChartDataSet alloc] initWithEntries:yVals label:@"DataSet 1"]; set1.lineWidth = 1.75; set1.circleRadius = 5.0; diff --git a/ChartsDemo/Classes/Demos/CombinedChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/CombinedChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.h diff --git a/ChartsDemo/Classes/Demos/CombinedChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m similarity index 94% rename from ChartsDemo/Classes/Demos/CombinedChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m index fa65aec940..995c419210 100644 --- a/ChartsDemo/Classes/Demos/CombinedChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m @@ -10,7 +10,7 @@ // #import "CombinedChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #define ITEM_COUNT 12 @@ -170,7 +170,7 @@ - (LineChartData *)generateLineData [entries addObject:[[ChartDataEntry alloc] initWithX:index + 0.5 y:(arc4random_uniform(15) + 5)]]; } - LineChartDataSet *set = [[LineChartDataSet alloc] initWithValues:entries label:@"Line DataSet"]; + LineChartDataSet *set = [[LineChartDataSet alloc] initWithEntries:entries label:@"Line DataSet"]; [set setColor:[UIColor colorWithRed:240/255.f green:238/255.f blue:70/255.f alpha:1.f]]; set.lineWidth = 2.5; [set setCircleColor:[UIColor colorWithRed:240/255.f green:238/255.f blue:70/255.f alpha:1.f]]; @@ -202,13 +202,13 @@ - (BarChartData *)generateBarData [entries2 addObject:[[BarChartDataEntry alloc] initWithX:0.0 yValues:@[@(arc4random_uniform(13) + 12), @(arc4random_uniform(13) + 12)]]]; } - BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithValues:entries1 label:@"Bar 1"]; + BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithEntries:entries1 label:@"Bar 1"]; [set1 setColor:[UIColor colorWithRed:60/255.f green:220/255.f blue:78/255.f alpha:1.f]]; set1.valueTextColor = [UIColor colorWithRed:60/255.f green:220/255.f blue:78/255.f alpha:1.f]; set1.valueFont = [UIFont systemFontOfSize:10.f]; - set1.axisDependency = AxisDependencyLeft; + set1.axisDependency = AxisDependencyRight; - BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithValues:entries2 label:@""]; + BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithEntries:entries2 label:@""]; set2.stackLabels = @[@"Stack 1", @"Stack 2"]; set2.colors = @[ [UIColor colorWithRed:61/255.f green:165/255.f blue:255/255.f alpha:1.f], @@ -216,7 +216,7 @@ - (BarChartData *)generateBarData ]; set2.valueTextColor = [UIColor colorWithRed:61/255.f green:165/255.f blue:255/255.f alpha:1.f]; set2.valueFont = [UIFont systemFontOfSize:10.f]; - set2.axisDependency = AxisDependencyLeft; + set2.axisDependency = AxisDependencyRight; float groupSpace = 0.06f; float barSpace = 0.02f; // x2 dataset @@ -243,7 +243,7 @@ - (ScatterChartData *)generateScatterData [entries addObject:[[ChartDataEntry alloc] initWithX:index + 0.25 y:(arc4random_uniform(10) + 55)]]; } - ScatterChartDataSet *set = [[ScatterChartDataSet alloc] initWithValues:entries label:@"Scatter DataSet"]; + ScatterChartDataSet *set = [[ScatterChartDataSet alloc] initWithEntries:entries label:@"Scatter DataSet"]; set.colors = ChartColorTemplates.material; set.scatterShapeSize = 4.5; [set setDrawValuesEnabled:NO]; @@ -265,7 +265,7 @@ - (CandleChartData *)generateCandleData [entries addObject:[[CandleChartDataEntry alloc] initWithX:index + 1 shadowH:90.0 shadowL:70.0 open:85.0 close:75.0]]; } - CandleChartDataSet *set = [[CandleChartDataSet alloc] initWithValues:entries label:@"Candle DataSet"]; + CandleChartDataSet *set = [[CandleChartDataSet alloc] initWithEntries:entries label:@"Candle DataSet"]; [set setColor:[UIColor colorWithRed:80/255.f green:80/255.f blue:80/255.f alpha:1.f]]; set.decreasingColor = [UIColor colorWithRed:142/255.0 green:150/255.0 blue:175/255.0 alpha:1.0]; set.shadowColor = UIColor.darkGrayColor; @@ -290,7 +290,7 @@ - (BubbleChartData *)generateBubbleData [entries addObject:[[BubbleChartDataEntry alloc] initWithX:index + 0.5 y:y size:size]]; } - BubbleChartDataSet *set = [[BubbleChartDataSet alloc] initWithValues:entries label:@"Bubble DataSet"]; + BubbleChartDataSet *set = [[BubbleChartDataSet alloc] initWithEntries:entries label:@"Bubble DataSet"]; [set setColors:ChartColorTemplates.vordiplom]; set.valueTextColor = UIColor.whiteColor; set.valueFont = [UIFont systemFontOfSize:10.f]; diff --git a/ChartsDemo/Classes/Demos/CubicLineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/CubicLineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.h diff --git a/ChartsDemo/Classes/Demos/CubicLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/CubicLineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m index d434898479..0d590fbf1c 100644 --- a/ChartsDemo/Classes/Demos/CubicLineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m @@ -10,7 +10,7 @@ // #import "CubicLineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface CubicLineSampleFillFormatter : NSObject { @@ -126,13 +126,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (LineChartDataSet *)_chartView.data.dataSets[0]; - set1.values = yVals1; + [set1 replaceEntries:yVals1]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[LineChartDataSet alloc] initWithValues:yVals1 label:@"DataSet 1"]; + set1 = [[LineChartDataSet alloc] initWithEntries:yVals1 label:@"DataSet 1"]; set1.mode = LineChartModeCubicBezier; set1.cubicIntensity = 0.2; set1.drawCirclesEnabled = NO; diff --git a/ChartsDemo/Classes/Demos/HalfPieChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/HalfPieChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.h diff --git a/ChartsDemo/Classes/Demos/HalfPieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m similarity index 96% rename from ChartsDemo/Classes/Demos/HalfPieChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m index cb8ef98bb4..e66840c48e 100644 --- a/ChartsDemo/Classes/Demos/HalfPieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m @@ -10,7 +10,7 @@ // #import "HalfPieChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface HalfPieChartViewController () @@ -24,7 +24,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.title = @"Half Pie Bar Chart"; + self.title = @"Half Pie Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Y-Values"}, @@ -101,7 +101,7 @@ - (void)setDataCount:(int)count range:(double)range [values addObject:[[PieChartDataEntry alloc] initWithValue:(arc4random_uniform(mult) + mult / 5) label:parties[i % parties.count]]]; } - PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithValues:values label:@"Election Results"]; + PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithEntries:values label:@"Election Results"]; dataSet.sliceSpace = 3.0; dataSet.selectionShift = 5.0; @@ -128,7 +128,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleXValues"]) { - _chartView.drawSliceTextEnabled = !_chartView.isDrawSliceTextEnabled; + _chartView.drawEntryLabelsEnabled = !_chartView.drawEntryLabelsEnabled; [_chartView setNeedsDisplay]; return; diff --git a/ChartsDemo/Classes/Demos/HorizontalBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/HorizontalBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/HorizontalBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/HorizontalBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m index dac6e26e07..54899281f1 100644 --- a/ChartsDemo/Classes/Demos/HorizontalBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m @@ -10,7 +10,7 @@ // #import "HorizontalBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface HorizontalBarChartViewController () @@ -127,13 +127,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (BarChartDataSet *)_chartView.data.dataSets[0]; - set1.values = yVals; + [set1 replaceEntries:yVals]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@"DataSet"]; + set1 = [[BarChartDataSet alloc] initWithEntries:yVals label:@"DataSet"]; set1.drawIconsEnabled = NO; diff --git a/ChartsDemo/Classes/Demos/LineChart1ViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/LineChart1ViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.h diff --git a/ChartsDemo/Classes/Demos/LineChart1ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m similarity index 92% rename from ChartsDemo/Classes/Demos/LineChart1ViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m index 15fd13a2ac..40297febdb 100644 --- a/ChartsDemo/Classes/Demos/LineChart1ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m @@ -10,7 +10,7 @@ // #import "LineChart1ViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChart1ViewController () @@ -61,7 +61,7 @@ - (void)viewDidLoad ChartLimitLine *llXAxis = [[ChartLimitLine alloc] initWithLimit:10.0 label:@"Index 10"]; llXAxis.lineWidth = 4.0; llXAxis.lineDashLengths = @[@(10.f), @(10.f), @(0.f)]; - llXAxis.labelPosition = ChartLimitLabelPositionRightBottom; + llXAxis.labelPosition = ChartLimitLabelPositionBottomRight; llXAxis.valueFont = [UIFont systemFontOfSize:10.f]; //[_chartView.xAxis addLimitLine:llXAxis]; @@ -72,13 +72,13 @@ - (void)viewDidLoad ChartLimitLine *ll1 = [[ChartLimitLine alloc] initWithLimit:150.0 label:@"Upper Limit"]; ll1.lineWidth = 4.0; ll1.lineDashLengths = @[@5.f, @5.f]; - ll1.labelPosition = ChartLimitLabelPositionRightTop; + ll1.labelPosition = ChartLimitLabelPositionTopRight; ll1.valueFont = [UIFont systemFontOfSize:10.0]; ChartLimitLine *ll2 = [[ChartLimitLine alloc] initWithLimit:-30.0 label:@"Lower Limit"]; ll2.lineWidth = 4.0; ll2.lineDashLengths = @[@5.f, @5.f]; - ll2.labelPosition = ChartLimitLabelPositionRightBottom; + ll2.labelPosition = ChartLimitLabelPositionBottomRight; ll2.valueFont = [UIFont systemFontOfSize:10.0]; ChartYAxis *leftAxis = _chartView.leftAxis; @@ -145,13 +145,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (LineChartDataSet *)_chartView.data.dataSets[0]; - set1.values = values; + [set1 replaceEntries: values]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[LineChartDataSet alloc] initWithValues:values label:@"DataSet 1"]; + set1 = [[LineChartDataSet alloc] initWithEntries:values label:@"DataSet 1"]; set1.drawIconsEnabled = NO; @@ -227,7 +227,14 @@ - (void)optionTapped:(NSString *)key { for (id set in _chartView.data.dataSets) { - set.drawSteppedEnabled = !set.isDrawSteppedEnabled; + switch (set.mode) { + case LineChartModeLinear: + case LineChartModeCubicBezier: + case LineChartModeHorizontalBezier: + set.mode = LineChartModeStepped; + break; + case LineChartModeStepped: set.mode = LineChartModeLinear; + } } [_chartView setNeedsDisplay]; diff --git a/ChartsDemo/Classes/Demos/LineChart2ViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/LineChart2ViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.h diff --git a/ChartsDemo/Classes/Demos/LineChart2ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m similarity index 92% rename from ChartsDemo/Classes/Demos/LineChart2ViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m index d1996ba77e..75eceadef6 100644 --- a/ChartsDemo/Classes/Demos/LineChart2ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m @@ -10,7 +10,7 @@ // #import "LineChart2ViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChart2ViewController () @@ -146,15 +146,15 @@ - (void)setDataCount:(int)count range:(double)range set1 = (LineChartDataSet *)_chartView.data.dataSets[0]; set2 = (LineChartDataSet *)_chartView.data.dataSets[1]; set3 = (LineChartDataSet *)_chartView.data.dataSets[2]; - set1.values = yVals1; - set2.values = yVals2; - set3.values = yVals3; + [set1 replaceEntries:yVals1]; + [set2 replaceEntries:yVals2]; + [set3 replaceEntries:yVals3]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[LineChartDataSet alloc] initWithValues:yVals1 label:@"DataSet 1"]; + set1 = [[LineChartDataSet alloc] initWithEntries:yVals1 label:@"DataSet 1"]; set1.axisDependency = AxisDependencyLeft; [set1 setColor:[UIColor colorWithRed:51/255.f green:181/255.f blue:229/255.f alpha:1.f]]; [set1 setCircleColor:UIColor.whiteColor]; @@ -165,7 +165,7 @@ - (void)setDataCount:(int)count range:(double)range set1.highlightColor = [UIColor colorWithRed:244/255.f green:117/255.f blue:117/255.f alpha:1.f]; set1.drawCircleHoleEnabled = NO; - set2 = [[LineChartDataSet alloc] initWithValues:yVals2 label:@"DataSet 2"]; + set2 = [[LineChartDataSet alloc] initWithEntries:yVals2 label:@"DataSet 2"]; set2.axisDependency = AxisDependencyRight; [set2 setColor:UIColor.redColor]; [set2 setCircleColor:UIColor.whiteColor]; @@ -176,7 +176,7 @@ - (void)setDataCount:(int)count range:(double)range set2.highlightColor = [UIColor colorWithRed:244/255.f green:117/255.f blue:117/255.f alpha:1.f]; set2.drawCircleHoleEnabled = NO; - set3 = [[LineChartDataSet alloc] initWithValues:yVals3 label:@"DataSet 3"]; + set3 = [[LineChartDataSet alloc] initWithEntries:yVals3 label:@"DataSet 3"]; set3.axisDependency = AxisDependencyRight; [set3 setColor:UIColor.yellowColor]; [set3 setCircleColor:UIColor.whiteColor]; @@ -239,7 +239,14 @@ - (void)optionTapped:(NSString *)key { for (id set in _chartView.data.dataSets) { - set.drawSteppedEnabled = !set.isDrawSteppedEnabled; + switch (set.mode) { + case LineChartModeLinear: + case LineChartModeCubicBezier: + case LineChartModeHorizontalBezier: + set.mode = LineChartModeStepped; + break; + case LineChartModeStepped: set.mode = LineChartModeLinear; + } } [_chartView setNeedsDisplay]; diff --git a/ChartsDemo/Classes/Demos/LineChartFilledViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/LineChartFilledViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.h diff --git a/ChartsDemo/Classes/Demos/LineChartFilledViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m similarity index 93% rename from ChartsDemo/Classes/Demos/LineChartFilledViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m index c78a043b30..f6ec793465 100644 --- a/ChartsDemo/Classes/Demos/LineChartFilledViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m @@ -10,7 +10,7 @@ // #import "LineChartFilledViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChartFilledViewController () @@ -105,14 +105,14 @@ - (void)setDataCount:(int)count range:(double)range { set1 = (LineChartDataSet *)_chartView.data.dataSets[0]; set2 = (LineChartDataSet *)_chartView.data.dataSets[1]; - set1.values = yVals1; - set2.values = yVals2; + [set1 replaceEntries:yVals1]; + [set2 replaceEntries:yVals2]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[LineChartDataSet alloc] initWithValues:yVals1 label:@"DataSet 1"]; + set1 = [[LineChartDataSet alloc] initWithEntries:yVals1 label:@"DataSet 1"]; set1.axisDependency = AxisDependencyLeft; [set1 setColor:[UIColor colorWithRed:255/255.0 green:241/255.0 blue:46/255.0 alpha:1.0]]; set1.drawCirclesEnabled = NO; @@ -124,10 +124,10 @@ - (void)setDataCount:(int)count range:(double)range set1.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set1.drawCircleHoleEnabled = NO; set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { - return _chartView.leftAxis.axisMinimum; + return self.chartView.leftAxis.axisMinimum; }]; - set2 = [[LineChartDataSet alloc] initWithValues:yVals2 label:@"DataSet 2"]; + set2 = [[LineChartDataSet alloc] initWithEntries:yVals2 label:@"DataSet 2"]; set2.axisDependency = AxisDependencyLeft; [set2 setColor:[UIColor colorWithRed:255/255.0 green:241/255.0 blue:46/255.0 alpha:1.0]]; set2.drawCirclesEnabled = NO; @@ -139,7 +139,7 @@ - (void)setDataCount:(int)count range:(double)range set2.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set2.drawCircleHoleEnabled = NO; set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { - return _chartView.leftAxis.axisMaximum; + return self.chartView.leftAxis.axisMaximum; }]; NSMutableArray *dataSets = [[NSMutableArray alloc] init]; diff --git a/ChartsDemo/Classes/Demos/LineChartTimeViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/LineChartTimeViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.h diff --git a/ChartsDemo/Classes/Demos/LineChartTimeViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m similarity index 93% rename from ChartsDemo/Classes/Demos/LineChartTimeViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m index 12667ea96f..06e6808f4f 100644 --- a/ChartsDemo/Classes/Demos/LineChartTimeViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m @@ -10,7 +10,7 @@ // #import "LineChartTimeViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "DateValueFormatter.h" @interface LineChartTimeViewController () @@ -126,13 +126,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (LineChartDataSet *)_chartView.data.dataSets[0]; - set1.values = values; + [set1 replaceEntries: values]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[LineChartDataSet alloc] initWithValues:values label:@"DataSet 1"]; + set1 = [[LineChartDataSet alloc] initWithEntries:values label:@"DataSet 1"]; set1.axisDependency = AxisDependencyLeft; set1.valueTextColor = [UIColor colorWithRed:51/255.0 green:181/255.0 blue:229/255.0 alpha:1.0]; set1.lineWidth = 1.5; @@ -193,7 +193,14 @@ - (void)optionTapped:(NSString *)key { for (id set in _chartView.data.dataSets) { - set.drawSteppedEnabled = !set.isDrawSteppedEnabled; + switch (set.mode) { + case LineChartModeLinear: + case LineChartModeCubicBezier: + case LineChartModeHorizontalBezier: + set.mode = LineChartModeStepped; + break; + case LineChartModeStepped: set.mode = LineChartModeLinear; + } } [_chartView setNeedsDisplay]; diff --git a/ChartsDemo/Classes/Demos/MultipleBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/MultipleBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/MultipleBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m similarity index 94% rename from ChartsDemo/Classes/Demos/MultipleBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m index b4157afb86..ec748b8d24 100644 --- a/ChartsDemo/Classes/Demos/MultipleBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m @@ -10,7 +10,7 @@ // #import "MultipleBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "IntAxisValueFormatter.h" @interface MultipleBarChartViewController () @@ -155,10 +155,10 @@ - (void)setDataCount:(int)count range:(double)range set2 = (BarChartDataSet *)_chartView.data.dataSets[1]; set3 = (BarChartDataSet *)_chartView.data.dataSets[2]; set4 = (BarChartDataSet *)_chartView.data.dataSets[3]; - set1.values = yVals1; - set2.values = yVals2; - set3.values = yVals3; - set4.values = yVals4; + [set1 replaceEntries:yVals1]; + [set2 replaceEntries:yVals2]; + [set3 replaceEntries:yVals3]; + [set4 replaceEntries:yVals4]; BarChartData *data = _chartView.barData; @@ -171,16 +171,16 @@ - (void)setDataCount:(int)count range:(double)range } else { - set1 = [[BarChartDataSet alloc] initWithValues:yVals1 label:@"Company A"]; + set1 = [[BarChartDataSet alloc] initWithEntries:yVals1 label:@"Company A"]; [set1 setColor:[UIColor colorWithRed:104/255.f green:241/255.f blue:175/255.f alpha:1.f]]; - set2 = [[BarChartDataSet alloc] initWithValues:yVals2 label:@"Company B"]; + set2 = [[BarChartDataSet alloc] initWithEntries:yVals2 label:@"Company B"]; [set2 setColor:[UIColor colorWithRed:164/255.f green:228/255.f blue:251/255.f alpha:1.f]]; - set3 = [[BarChartDataSet alloc] initWithValues:yVals3 label:@"Company C"]; + set3 = [[BarChartDataSet alloc] initWithEntries:yVals3 label:@"Company C"]; [set3 setColor:[UIColor colorWithRed:242/255.f green:247/255.f blue:158/255.f alpha:1.f]]; - set4 = [[BarChartDataSet alloc] initWithValues:yVals4 label:@"Company D"]; + set4 = [[BarChartDataSet alloc] initWithEntries:yVals4 label:@"Company D"]; [set4 setColor:[UIColor colorWithRed:255/255.f green:102/255.f blue:0/255.f alpha:1.f]]; NSMutableArray *dataSets = [[NSMutableArray alloc] init]; diff --git a/ChartsDemo/Classes/Demos/MultipleLinesChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/MultipleLinesChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.h diff --git a/ChartsDemo/Classes/Demos/MultipleLinesChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m similarity index 93% rename from ChartsDemo/Classes/Demos/MultipleLinesChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m index dcb18cd7df..358a7e21eb 100644 --- a/ChartsDemo/Classes/Demos/MultipleLinesChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m @@ -10,7 +10,7 @@ // #import "MultipleLinesChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface MultipleLinesChartViewController () @@ -106,7 +106,7 @@ - (void)setDataCount:(int)count range:(double)range [values addObject:[[ChartDataEntry alloc] initWithX:i y:val]]; } - LineChartDataSet *d = [[LineChartDataSet alloc] initWithValues:values label:[NSString stringWithFormat:@"DataSet %d", z + 1]]; + LineChartDataSet *d = [[LineChartDataSet alloc] initWithEntries:values label:[NSString stringWithFormat:@"DataSet %d", z + 1]]; d.lineWidth = 2.5; d.circleRadius = 4.0; d.circleHoleRadius = 2.0; @@ -165,7 +165,14 @@ - (void)optionTapped:(NSString *)key { for (id set in _chartView.data.dataSets) { - set.drawSteppedEnabled = !set.isDrawSteppedEnabled; + switch (set.mode) { + case LineChartModeLinear: + case LineChartModeCubicBezier: + case LineChartModeHorizontalBezier: + set.mode = LineChartModeStepped; + break; + case LineChartModeStepped: set.mode = LineChartModeLinear; + } } [_chartView setNeedsDisplay]; diff --git a/ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m index da934ad7b7..b87ef62a13 100644 --- a/ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m @@ -10,7 +10,7 @@ // #import "NegativeStackedBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface NegativeStackedBarChartViewController () @@ -124,7 +124,7 @@ - (void)setChartData if (_chartView.data.dataSetCount > 0) { set = (BarChartDataSet *)_chartView.data.dataSets[0]; - set.values = yValues; + [set replaceEntries: yValues]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } @@ -137,7 +137,7 @@ - (void)setChartData customFormatter.minimumSignificantDigits = 1; customFormatter.minimumFractionDigits = 1; - set = [[BarChartDataSet alloc] initWithValues:yValues label:@"Age Distribution"]; + set = [[BarChartDataSet alloc] initWithEntries:yValues label:@"Age Distribution"]; set.drawIconsEnabled = NO; diff --git a/ChartsDemo/Classes/Demos/PieChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/PieChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.h diff --git a/ChartsDemo/Classes/Demos/PieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/PieChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m index 0799e4640e..5bc3a9d665 100644 --- a/ChartsDemo/Classes/Demos/PieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m @@ -10,7 +10,7 @@ // #import "PieChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PieChartViewController () @@ -28,7 +28,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.title = @"Pie Bar Chart"; + self.title = @"Pie Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Y-Values"}, @@ -97,7 +97,7 @@ - (void)setDataCount:(int)count range:(double)range [values addObject:[[PieChartDataEntry alloc] initWithValue:(arc4random_uniform(mult) + mult / 5) label:parties[i % parties.count] icon: [UIImage imageNamed:@"icon"]]]; } - PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithValues:values label:@"Election Results"]; + PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithEntries:values label:@"Election Results"]; dataSet.drawIconsEnabled = NO; @@ -135,7 +135,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleXValues"]) { - _chartView.drawSliceTextEnabled = !_chartView.isDrawSliceTextEnabled; + _chartView.drawEntryLabelsEnabled = !_chartView.drawEntryLabelsEnabled; [_chartView setNeedsDisplay]; return; diff --git a/ChartsDemo/Classes/Demos/PiePolylineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/PiePolylineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.h diff --git a/ChartsDemo/Classes/Demos/PiePolylineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m similarity index 98% rename from ChartsDemo/Classes/Demos/PiePolylineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m index f68658f296..81f092e9be 100644 --- a/ChartsDemo/Classes/Demos/PiePolylineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m @@ -7,7 +7,7 @@ // #import "PiePolylineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PiePolylineChartViewController () @@ -24,7 +24,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.title = @"Pie Bar Chart"; + self.title = @"Pie Poly Line Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Y-Values"}, @@ -82,7 +82,7 @@ - (void)setDataCount:(int)count range:(double)range [entries addObject:[[PieChartDataEntry alloc] initWithValue:(arc4random_uniform(mult) + mult / 5) label:parties[i % parties.count]]]; } - PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithValues:entries label:@"Election Results"]; + PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithEntries:entries label:@"Election Results"]; dataSet.sliceSpace = 2.0; // add a lot of colors diff --git a/ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m similarity index 98% rename from ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m index 4a048dab65..2440fe9e1a 100644 --- a/ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m @@ -10,7 +10,7 @@ // #import "PositiveNegativeBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PositiveNegativeBarChartViewController () { @@ -27,7 +27,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.title = @"Bar Chart"; + self.title = @"Positive/Negative Bar Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Values"}, @@ -149,7 +149,7 @@ - (void)setChartData } } - BarChartDataSet *set = set = [[BarChartDataSet alloc] initWithValues:values label:@"Values"]; + BarChartDataSet *set = set = [[BarChartDataSet alloc] initWithEntries:values label:@"Values"]; set.colors = colors; set.valueColors = colors; diff --git a/ChartsDemo/Classes/Demos/RadarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/RadarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/RadarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m similarity index 89% rename from ChartsDemo/Classes/Demos/RadarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m index 1810924a86..24cfea5b58 100644 --- a/ChartsDemo/Classes/Demos/RadarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m @@ -10,17 +10,15 @@ // #import "RadarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface RadarChartViewController () -{ - NSArray *activities; - UIColor *originalBarBgColor; - UIColor *originalBarTintColor; - UIBarStyle originalBarStyle; -} @property (nonatomic, strong) IBOutlet RadarChartView *chartView; +@property (nonatomic, strong) NSArray *activities; +@property (nonatomic, strong) UIColor *originalBarBgColor; +@property (nonatomic, strong) UIColor *originalBarTintColor; +@property (nonatomic) UIBarStyle originalBarStyle; @end @@ -30,9 +28,9 @@ - (void)viewDidLoad { [super viewDidLoad]; - activities = @[ @"Burger", @"Steak", @"Salad", @"Pasta", @"Pizza" ]; + self.activities = @[ @"Burger", @"Steak", @"Salad", @"Pasta", @"Pizza" ]; - self.title = @"Radar Bar Chart"; + self.title = @"Radar Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Values"}, @@ -59,7 +57,7 @@ - (void)viewDidLoad _chartView.innerWebColor = UIColor.lightGrayColor; _chartView.webAlpha = 1.0; - RadarMarkerView *marker = (RadarMarkerView *)[RadarMarkerView viewFromXib]; + RadarMarkerView *marker = (RadarMarkerView *)[RadarMarkerView viewFromXibIn:[NSBundle mainBundle]]; marker.chartView = _chartView; _chartView.marker = marker; @@ -98,9 +96,9 @@ - (void)viewWillAppear:(BOOL)animated [UIView animateWithDuration:0.15 animations:^{ UINavigationBar *navigationBar = self.navigationController.navigationBar; - originalBarBgColor = self.navigationController.navigationBar.barTintColor; - originalBarTintColor = self.navigationController.navigationBar.tintColor; - originalBarStyle = self.navigationController.navigationBar.barStyle; + self.originalBarBgColor = navigationBar.barTintColor; + self.originalBarTintColor = navigationBar.tintColor; + self.originalBarStyle = navigationBar.barStyle; navigationBar.barTintColor = self.view.backgroundColor; navigationBar.tintColor = UIColor.whiteColor; @@ -114,9 +112,9 @@ - (void)viewWillDisappear:(BOOL)animated [UIView animateWithDuration:0.15 animations:^{ UINavigationBar *navigationBar = self.navigationController.navigationBar; - navigationBar.barTintColor = originalBarBgColor; - navigationBar.tintColor = originalBarTintColor; - navigationBar.barStyle = originalBarStyle; + navigationBar.barTintColor = self.originalBarBgColor; + navigationBar.tintColor = self.originalBarTintColor; + navigationBar.barStyle = self.originalBarStyle; }]; } @@ -153,7 +151,7 @@ - (void)setChartData [entries2 addObject:[[RadarChartDataEntry alloc] initWithValue:(arc4random_uniform(mult) + min)]]; } - RadarChartDataSet *set1 = [[RadarChartDataSet alloc] initWithValues:entries1 label:@"Last Week"]; + RadarChartDataSet *set1 = [[RadarChartDataSet alloc] initWithEntries:entries1 label:@"Last Week"]; [set1 setColor:[UIColor colorWithRed:103/255.0 green:110/255.0 blue:129/255.0 alpha:1.0]]; set1.fillColor = [UIColor colorWithRed:103/255.0 green:110/255.0 blue:129/255.0 alpha:1.0]; set1.drawFilledEnabled = YES; @@ -162,7 +160,7 @@ - (void)setChartData set1.drawHighlightCircleEnabled = YES; [set1 setDrawHighlightIndicators:NO]; - RadarChartDataSet *set2 = [[RadarChartDataSet alloc] initWithValues:entries2 label:@"This Week"]; + RadarChartDataSet *set2 = [[RadarChartDataSet alloc] initWithEntries:entries2 label:@"This Week"]; [set2 setColor:[UIColor colorWithRed:121/255.0 green:162/255.0 blue:175/255.0 alpha:1.0]]; set2.fillColor = [UIColor colorWithRed:121/255.0 green:162/255.0 blue:175/255.0 alpha:1.0]; set2.drawFilledEnabled = YES; @@ -270,7 +268,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis { - return activities[(int) value % activities.count]; + return self.activities[(int) value % self.activities.count]; } @end diff --git a/ChartsDemo/Classes/Demos/ScatterChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/ScatterChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.h diff --git a/ChartsDemo/Classes/Demos/ScatterChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m similarity index 96% rename from ChartsDemo/Classes/Demos/ScatterChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m index 177ba28fb7..19a158f640 100644 --- a/ChartsDemo/Classes/Demos/ScatterChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m @@ -10,7 +10,7 @@ // #import "ScatterChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface ScatterChartViewController () @@ -28,7 +28,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.title = @"Scatter Bar Chart"; + self.title = @"Scatter Chart"; self.options = @[ @{@"key": @"toggleValues", @"label": @"Toggle Values"}, @@ -110,15 +110,15 @@ - (void)setDataCount:(int)count range:(double)range [yVals3 addObject:[[ChartDataEntry alloc] initWithX:(double)i + 0.66 y:val]]; } - ScatterChartDataSet *set1 = [[ScatterChartDataSet alloc] initWithValues:yVals1 label:@"DS 1"]; + ScatterChartDataSet *set1 = [[ScatterChartDataSet alloc] initWithEntries:yVals1 label:@"DS 1"]; [set1 setScatterShape:ScatterShapeSquare]; [set1 setColor:ChartColorTemplates.colorful[0]]; - ScatterChartDataSet *set2 = [[ScatterChartDataSet alloc] initWithValues:yVals2 label:@"DS 2"]; + ScatterChartDataSet *set2 = [[ScatterChartDataSet alloc] initWithEntries:yVals2 label:@"DS 2"]; [set2 setScatterShape:ScatterShapeCircle]; set2.scatterShapeHoleColor = ChartColorTemplates.colorful[3]; set2.scatterShapeHoleRadius = 3.5f; [set2 setColor:ChartColorTemplates.colorful[1]]; - ScatterChartDataSet *set3 = [[ScatterChartDataSet alloc] initWithValues:yVals3 label:@"DS 3"]; + ScatterChartDataSet *set3 = [[ScatterChartDataSet alloc] initWithEntries:yVals3 label:@"DS 3"]; [set3 setScatterShape:ScatterShapeCross]; [set3 setColor:ChartColorTemplates.colorful[2]]; diff --git a/ChartsDemo/Classes/Demos/SinusBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/SinusBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/SinusBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m similarity index 96% rename from ChartsDemo/Classes/Demos/SinusBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m index 708aa727ad..e64bf3388b 100644 --- a/ChartsDemo/Classes/Demos/SinusBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m @@ -10,7 +10,7 @@ // #import "SinusBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface SinusBarChartViewController () @@ -118,13 +118,13 @@ - (void)setDataCount:(int)count if (_chartView.data.dataSetCount > 0) { set = (BarChartDataSet *)_chartView.data.dataSets[0]; - set.values = entries; + [set replaceEntries: entries]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set = [[BarChartDataSet alloc] initWithValues:entries label:@"Sinus Function"]; + set = [[BarChartDataSet alloc] initWithEntries:entries label:@"Sinus Function"]; [set setColor:[UIColor colorWithRed:240/255.f green:120/255.f blue:124/255.f alpha:1.f]]; BarChartData *data = [[BarChartData alloc] initWithDataSet:set]; diff --git a/ChartsDemo/Classes/Demos/StackedBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.h similarity index 100% rename from ChartsDemo/Classes/Demos/StackedBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.h diff --git a/ChartsDemo/Classes/Demos/StackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m similarity index 97% rename from ChartsDemo/Classes/Demos/StackedBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m index 2f3e728132..69fb1053bf 100644 --- a/ChartsDemo/Classes/Demos/StackedBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m @@ -10,7 +10,7 @@ // #import "StackedBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface StackedBarChartViewController () @@ -119,13 +119,13 @@ - (void)setDataCount:(int)count range:(double)range if (_chartView.data.dataSetCount > 0) { set1 = (BarChartDataSet *)_chartView.data.dataSets[0]; - set1.values = yVals; + [set1 replaceEntries: yVals]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } else { - set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@"Statistics Vienna 2014"]; + set1 = [[BarChartDataSet alloc] initWithEntries:yVals label:@"Statistics Vienna 2014"]; set1.drawIconsEnabled = NO; diff --git a/ChartsDemo/Classes/Formatters/DateValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h similarity index 90% rename from ChartsDemo/Classes/Formatters/DateValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h index 71ba11d021..2e94536aa7 100644 --- a/ChartsDemo/Classes/Formatters/DateValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h @@ -10,7 +10,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DateValueFormatter : NSObject diff --git a/ChartsDemo/Classes/Formatters/DateValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.m similarity index 100% rename from ChartsDemo/Classes/Formatters/DateValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.m diff --git a/ChartsDemo/Classes/Formatters/DayAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h similarity index 88% rename from ChartsDemo/Classes/Formatters/DayAxisValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h index 117e8c8de1..4de193d0c5 100644 --- a/ChartsDemo/Classes/Formatters/DayAxisValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h @@ -5,7 +5,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DayAxisValueFormatter : NSObject diff --git a/ChartsDemo/Classes/Formatters/DayAxisValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.m similarity index 100% rename from ChartsDemo/Classes/Formatters/DayAxisValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.m diff --git a/ChartsDemo/Classes/Formatters/IntAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h similarity index 85% rename from ChartsDemo/Classes/Formatters/IntAxisValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h index 746cc21565..6401ed07d4 100644 --- a/ChartsDemo/Classes/Formatters/IntAxisValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h @@ -5,7 +5,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface IntAxisValueFormatter : NSObject diff --git a/ChartsDemo/Classes/Formatters/IntAxisValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.m similarity index 100% rename from ChartsDemo/Classes/Formatters/IntAxisValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.m diff --git a/ChartsDemo/Classes/Formatters/LargeValueFormatter.swift b/ChartsDemo-iOS/Objective-C/Formatters/LargeValueFormatter.swift similarity index 91% rename from ChartsDemo/Classes/Formatters/LargeValueFormatter.swift rename to ChartsDemo-iOS/Objective-C/Formatters/LargeValueFormatter.swift index 7f02bd40e3..47ca78fd5e 100644 --- a/ChartsDemo/Classes/Formatters/LargeValueFormatter.swift +++ b/ChartsDemo-iOS/Objective-C/Formatters/LargeValueFormatter.swift @@ -14,17 +14,17 @@ open class LargeValueFormatter: NSObject, IValueFormatter, IAxisValueFormatter /// Suffix to be appended after the values. /// /// **default**: suffix: ["", "k", "m", "b", "t"] - open var suffix = ["", "k", "m", "b", "t"] + @objc open var suffix = ["", "k", "m", "b", "t"] /// An appendix text to be added at the end of the formatted value. - open var appendix: String? + @objc open var appendix: String? public override init() { } - public init(appendix: String?) + @objc public init(appendix: String?) { self.appendix = appendix } diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 87% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Contents.json index fe9ab4226e..7c780dbcb5 100644 --- a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Contents.json @@ -45,10 +45,16 @@ "idiom" : "iphone", "filename" : "Icon-60@3x.png", "scale" : "3x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "iTunesArtwork@2x.png", + "scale" : "1x" } ], "info" : { "version" : 1, "author" : "xcode" } -} \ No newline at end of file +} diff --git a/ChartsDemo/Resources/app-icon/Icon-29@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-29@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png diff --git a/ChartsDemo/Resources/app-icon/Icon-29@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-29@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png diff --git a/ChartsDemo/Resources/app-icon/Icon-40@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-40@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png diff --git a/ChartsDemo/Resources/app-icon/Icon-40@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-40@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png diff --git a/ChartsDemo/Resources/app-icon/Icon-60@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-60@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png diff --git a/ChartsDemo/Resources/app-icon/Icon-60@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png similarity index 100% rename from ChartsDemo/Resources/app-icon/Icon-60@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png diff --git a/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png new file mode 100644 index 0000000000..808316d631 Binary files /dev/null and b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png differ diff --git a/ChartsDemo/Resources/Images.xcassets/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/Contents.json similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/Contents.json diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/Contents.json similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/Contents.json diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star-1.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-1.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star-1.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-1.png diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star-2.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-2.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star-2.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-2.png diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star.png diff --git a/ChartsDemo-iOS/Resources/Launch Screen.storyboard b/ChartsDemo-iOS/Resources/Launch Screen.storyboard new file mode 100644 index 0000000000..c9e454f2e2 --- /dev/null +++ b/ChartsDemo-iOS/Resources/Launch Screen.storyboard @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ChartsDemo/Resources/markers/radar_marker@3x.png b/ChartsDemo-iOS/Resources/markers/radar_marker@3x.png similarity index 100% rename from ChartsDemo/Resources/markers/radar_marker@3x.png rename to ChartsDemo-iOS/Resources/markers/radar_marker@3x.png diff --git a/ChartsDemo/Supporting Files/ChartsDemo-Bridging-Header.h b/ChartsDemo-iOS/Supporting Files/ChartsDemo-Bridging-Header.h similarity index 100% rename from ChartsDemo/Supporting Files/ChartsDemo-Bridging-Header.h rename to ChartsDemo-iOS/Supporting Files/ChartsDemo-Bridging-Header.h diff --git a/ChartsDemo/Supporting Files/Info.plist b/ChartsDemo-iOS/Supporting Files/Info.plist similarity index 85% rename from ChartsDemo/Supporting Files/Info.plist rename to ChartsDemo-iOS/Supporting Files/Info.plist index 4a1b14c07a..6e4887eb4c 100644 --- a/ChartsDemo/Supporting Files/Info.plist +++ b/ChartsDemo-iOS/Supporting Files/Info.plist @@ -22,6 +22,12 @@ 1 LSRequiresIPhoneOS + NSPhotoLibraryAddUsageDescription + This app requires access to the photo library to store shots of charts there. + NSPhotoLibraryUsageDescription + This app requires access to the photo library to store shots of charts there. + UILaunchStoryboardName + Launch Screen UIRequiredDeviceCapabilities armv7 @@ -32,7 +38,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - NSPhotoLibraryUsageDescription - This app requires access to the photo library to store shots of charts there. diff --git a/ChartsDemo/Supporting Files/main.m b/ChartsDemo-iOS/Supporting Files/main.m similarity index 100% rename from ChartsDemo/Supporting Files/main.m rename to ChartsDemo-iOS/Supporting Files/main.m diff --git a/ChartsDemo-iOS/Swift/AppDelegate.swift b/ChartsDemo-iOS/Swift/AppDelegate.swift new file mode 100644 index 0000000000..ff723e6872 --- /dev/null +++ b/ChartsDemo-iOS/Swift/AppDelegate.swift @@ -0,0 +1,56 @@ +// +// AppDelegate.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-03. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + self.window = UIWindow(frame: UIScreen.main.bounds) + + + let vc = DemoListViewController() + let nav = UINavigationController(rootViewController: vc) + + window?.rootViewController = nav + window?.makeKeyAndVisible() + + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/ChartsDemo-iOS/Swift/Components/RadarMarkerView.swift b/ChartsDemo-iOS/Swift/Components/RadarMarkerView.swift new file mode 100644 index 0000000000..8f7f09f3ab --- /dev/null +++ b/ChartsDemo-iOS/Swift/Components/RadarMarkerView.swift @@ -0,0 +1,30 @@ +// +// RadarMarkerView.swift +// ChartsDemo +// +// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda +// A port of MPAndroidChart for iOS +// Licensed under Apache License 2.0 +// +// https://github.com/danielgindi/Charts +// + +import Foundation +import Charts +#if canImport(UIKit) + import UIKit +#endif + +public class RadarMarkerView: MarkerView { + @IBOutlet var label: UILabel! + + public override func awakeFromNib() { + self.offset.x = -self.frame.size.width / 2.0 + self.offset.y = -self.frame.size.height - 7.0 + } + + public override func refreshContent(entry: ChartDataEntry, highlight: Highlight) { + label.text = String.init(format: "%d %%", Int(round(entry.y))) + layoutIfNeeded() + } +} diff --git a/ChartsDemo-iOS/Swift/Components/XYMarkerView.swift b/ChartsDemo-iOS/Swift/Components/XYMarkerView.swift new file mode 100644 index 0000000000..9fd1174bc9 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Components/XYMarkerView.swift @@ -0,0 +1,35 @@ +// +// XYMarkerView.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +import Foundation +import Charts +#if canImport(UIKit) + import UIKit +#endif + +public class XYMarkerView: BalloonMarker { + public var xAxisValueFormatter: IAxisValueFormatter + fileprivate var yFormatter = NumberFormatter() + + public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets, + xAxisValueFormatter: IAxisValueFormatter) { + self.xAxisValueFormatter = xAxisValueFormatter + yFormatter.minimumFractionDigits = 1 + yFormatter.maximumFractionDigits = 1 + super.init(color: color, font: font, textColor: textColor, insets: insets) + } + + public override func refreshContent(entry: ChartDataEntry, highlight: Highlight) { + let string = "x: " + + xAxisValueFormatter.stringForValue(entry.x, axis: XAxis()) + + ", y: " + + yFormatter.string(from: NSNumber(floatLiteral: entry.y))! + setLabel(string) + } + +} diff --git a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift new file mode 100644 index 0000000000..444d1f4729 --- /dev/null +++ b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift @@ -0,0 +1,366 @@ +// +// DemoBaseViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-03. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +enum Option { + case toggleValues + case toggleIcons + case toggleHighlight + case animateX + case animateY + case animateXY + case saveToGallery + case togglePinchZoom + case toggleAutoScaleMinMax + case toggleData + case toggleBarBorders + // CandleChart + case toggleShadowColorSameAsCandle + case toggleShowCandleBar + // CombinedChart + case toggleLineValues + case toggleBarValues + case removeDataSet + // CubicLineSampleFillFormatter + case toggleFilled + case toggleCircles + case toggleCubic + case toggleHorizontalCubic + case toggleStepped + // HalfPieChartController + case toggleXValues + case togglePercent + case toggleHole + case spin + case drawCenter + // RadarChart + case toggleXLabels + case toggleYLabels + case toggleRotate + case toggleHighlightCircle + + var label: String { + switch self { + case .toggleValues: return "Toggle Y-Values" + case .toggleIcons: return "Toggle Icons" + case .toggleHighlight: return "Toggle Highlight" + case .animateX: return "Animate X" + case .animateY: return "Animate Y" + case .animateXY: return "Animate XY" + case .saveToGallery: return "Save to Camera Roll" + case .togglePinchZoom: return "Toggle PinchZoom" + case .toggleAutoScaleMinMax: return "Toggle auto scale min/max" + case .toggleData: return "Toggle Data" + case .toggleBarBorders: return "Toggle Bar Borders" + // CandleChart + case .toggleShadowColorSameAsCandle: return "Toggle shadow same color" + case .toggleShowCandleBar: return "Toggle show candle bar" + // CombinedChart + case .toggleLineValues: return "Toggle Line Values" + case .toggleBarValues: return "Toggle Bar Values" + case .removeDataSet: return "Remove Random Set" + // CubicLineSampleFillFormatter + case .toggleFilled: return "Toggle Filled" + case .toggleCircles: return "Toggle Circles" + case .toggleCubic: return "Toggle Cubic" + case .toggleHorizontalCubic: return "Toggle Horizontal Cubic" + case .toggleStepped: return "Toggle Stepped" + // HalfPieChartController + case .toggleXValues: return "Toggle X-Values" + case .togglePercent: return "Toggle Percent" + case .toggleHole: return "Toggle Hole" + case .spin: return "Spin" + case .drawCenter: return "Draw CenterText" + // RadarChart + case .toggleXLabels: return "Toggle X-Labels" + case .toggleYLabels: return "Toggle Y-Labels" + case .toggleRotate: return "Toggle Rotate" + case .toggleHighlightCircle: return "Toggle highlight circle" + } + } +} + +class DemoBaseViewController: UIViewController, ChartViewDelegate { + private var optionsTableView: UITableView? = nil + let parties = ["Party A", "Party B", "Party C", "Party D", "Party E", "Party F", + "Party G", "Party H", "Party I", "Party J", "Party K", "Party L", + "Party M", "Party N", "Party O", "Party P", "Party Q", "Party R", + "Party S", "Party T", "Party U", "Party V", "Party W", "Party X", + "Party Y", "Party Z"] + + @IBOutlet weak var optionsButton: UIButton! + var options: [Option]! + + var shouldHideData: Bool = false + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + self.initialize() + } + + override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) + self.initialize() + } + + private func initialize() { + self.edgesForExtendedLayout = [] + } + + func optionTapped(_ option: Option) {} + + func handleOption(_ option: Option, forChartView chartView: ChartViewBase) { + switch option { + case .toggleValues: + for set in chartView.data!.dataSets { + set.drawValuesEnabled = !set.drawValuesEnabled + } + chartView.setNeedsDisplay() + + case .toggleIcons: + for set in chartView.data!.dataSets { + set.drawIconsEnabled = !set.drawIconsEnabled + } + chartView.setNeedsDisplay() + + case .toggleHighlight: + chartView.data!.highlightEnabled = !chartView.data!.isHighlightEnabled + chartView.setNeedsDisplay() + + case .animateX: + chartView.animate(xAxisDuration: 3) + + case .animateY: + chartView.animate(yAxisDuration: 3) + + case .animateXY: + chartView.animate(xAxisDuration: 3, yAxisDuration: 3) + + case .saveToGallery: + UIImageWriteToSavedPhotosAlbum(chartView.getChartImage(transparent: false)!, nil, nil, nil) + + case .togglePinchZoom: + let barLineChart = chartView as! BarLineChartViewBase + barLineChart.pinchZoomEnabled = !barLineChart.pinchZoomEnabled + chartView.setNeedsDisplay() + + case .toggleAutoScaleMinMax: + let barLineChart = chartView as! BarLineChartViewBase + barLineChart.autoScaleMinMaxEnabled = !barLineChart.isAutoScaleMinMaxEnabled + chartView.notifyDataSetChanged() + + case .toggleData: + shouldHideData = !shouldHideData + updateChartData() + + case .toggleBarBorders: + for set in chartView.data!.dataSets { + if let set = set as? BarChartDataSet { + set.barBorderWidth = set.barBorderWidth == 1.0 ? 0.0 : 1.0 + } + } + chartView.setNeedsDisplay() + default: + break + } + } + + @IBAction func optionsButtonTapped(_ sender: Any) { + if let optionsTableView = self.optionsTableView { + optionsTableView.removeFromSuperview() + self.optionsTableView = nil + return + } + + let optionsTableView = UITableView() + optionsTableView.backgroundColor = UIColor(white: 0, alpha: 0.9) + optionsTableView.delegate = self + optionsTableView.dataSource = self + + optionsTableView.translatesAutoresizingMaskIntoConstraints = false + + self.optionsTableView = optionsTableView + + var constraints = [NSLayoutConstraint]() + + constraints.append(NSLayoutConstraint(item: optionsTableView, + attribute: .leading, + relatedBy: .equal, + toItem: self.view, + attribute: .leading, + multiplier: 1, + constant: 40)) + + constraints.append(NSLayoutConstraint(item: optionsTableView, + attribute: .trailing, + relatedBy: .equal, + toItem: sender as! UIView, + attribute: .trailing, + multiplier: 1, + constant: 0)) + + constraints.append(NSLayoutConstraint(item: optionsTableView, + attribute: .top, + relatedBy: .equal, + toItem: sender, + attribute: .bottom, + multiplier: 1, + constant: 5)) + + self.view.addSubview(optionsTableView) + constraints.forEach { $0.isActive = true } + + let constraint = NSLayoutConstraint(item: optionsTableView, + attribute: .height, + relatedBy: .equal, + toItem: nil, + attribute: .height, + multiplier: 1, + constant: 220) + constraint.isActive = true + } + + func updateChartData() { + fatalError("updateChartData not overridden") + } + + func setup(pieChartView chartView: PieChartView) { + chartView.usePercentValuesEnabled = true + chartView.drawSlicesUnderHoleEnabled = false + chartView.holeRadiusPercent = 0.58 + chartView.transparentCircleRadiusPercent = 0.61 + chartView.chartDescription?.enabled = false + chartView.setExtraOffsets(left: 5, top: 10, right: 5, bottom: 5) + + chartView.drawCenterTextEnabled = true + + let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle + paragraphStyle.lineBreakMode = .byTruncatingTail + paragraphStyle.alignment = .center + + let centerText = NSMutableAttributedString(string: "Charts\nby Daniel Cohen Gindi") + centerText.setAttributes([.font : UIFont(name: "HelveticaNeue-Light", size: 13)!, + .paragraphStyle : paragraphStyle], range: NSRange(location: 0, length: centerText.length)) + centerText.addAttributes([.font : UIFont(name: "HelveticaNeue-Light", size: 11)!, + .foregroundColor : UIColor.gray], range: NSRange(location: 10, length: centerText.length - 10)) + centerText.addAttributes([.font : UIFont(name: "HelveticaNeue-Light", size: 11)!, + .foregroundColor : UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)], range: NSRange(location: centerText.length - 19, length: 19)) + chartView.centerAttributedText = centerText; + + chartView.drawHoleEnabled = true + chartView.rotationAngle = 0 + chartView.rotationEnabled = true + chartView.highlightPerTapEnabled = true + + let l = chartView.legend + l.horizontalAlignment = .right + l.verticalAlignment = .top + l.orientation = .vertical + l.drawInside = false + l.xEntrySpace = 7 + l.yEntrySpace = 0 + l.yOffset = 0 +// chartView.legend = l + } + + func setup(radarChartView chartView: RadarChartView) { + chartView.chartDescription?.enabled = false + } + + func setup(barLineChartView chartView: BarLineChartViewBase) { + chartView.chartDescription?.enabled = false + + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.pinchZoomEnabled = false + + // ChartYAxis *leftAxis = chartView.leftAxis; + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + + chartView.rightAxis.enabled = false + } + // TODO: Cannot override from extensions + //extension DemoBaseViewController: ChartViewDelegate { + func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { + NSLog("chartValueSelected"); + } + + func chartValueNothingSelected(_ chartView: ChartViewBase) { + NSLog("chartValueNothingSelected"); + } + + func chartScaled(_ chartView: ChartViewBase, scaleX: CGFloat, scaleY: CGFloat) { + + } + + func chartTranslated(_ chartView: ChartViewBase, dX: CGFloat, dY: CGFloat) { + + } +} + +extension DemoBaseViewController: UITableViewDelegate, UITableViewDataSource { + func numberOfSections(in tableView: UITableView) -> Int { + if optionsTableView != nil { + return 1 + } + + return 0 + } + + @available(iOS 2.0, *) + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + if optionsTableView != nil { + return options.count + } + + return 0 + + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + if optionsTableView != nil { + return 40.0; + } + + return 44.0; + } + + @available(iOS 2.0, *) + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + var cell = tableView.dequeueReusableCell(withIdentifier: "Cell") + + if cell == nil { + cell = UITableViewCell(style: .default, reuseIdentifier: "Cell") + cell?.backgroundView = nil + cell?.backgroundColor = .clear + cell?.textLabel?.textColor = .white + } + cell?.textLabel?.text = self.options[indexPath.row].label + + return cell! + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + if optionsTableView != nil { + tableView.deselectRow(at: indexPath, animated: true) + + optionsTableView?.removeFromSuperview() + self.optionsTableView = nil + + self.optionTapped(self.options[indexPath.row]) + } + + } +} + diff --git a/ChartsDemo-iOS/Swift/DemoListViewController.swift b/ChartsDemo-iOS/Swift/DemoListViewController.swift new file mode 100644 index 0000000000..f11ef9f528 --- /dev/null +++ b/ChartsDemo-iOS/Swift/DemoListViewController.swift @@ -0,0 +1,131 @@ +// +// DemoListViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif + +private struct ItemDef { + let title: String + let subtitle: String + let `class`: AnyClass +} + +class DemoListViewController: UIViewController { + + @IBOutlet var tableView: UITableView! + private var itemDefs = [ItemDef(title: "Line Chart", + subtitle: "A simple demonstration of the linechart.", + class: LineChart1ViewController.self), + ItemDef(title: "Line Chart (Dual YAxis)", + subtitle: "Demonstration of the linechart with dual y-axis.", + class: LineChart2ViewController.self), + ItemDef(title: "Bar Chart", + subtitle: "A simple demonstration of the bar chart.", + class: BarChartViewController.self), + ItemDef(title: "Horizontal Bar Chart", + subtitle: "A simple demonstration of the horizontal bar chart.", + class: HorizontalBarChartViewController.self), + ItemDef(title: "Combined Chart", + subtitle: "Demonstrates how to create a combined chart (bar and line in this case).", + class: CombinedChartViewController.self), + ItemDef(title: "Pie Chart", + subtitle: "A simple demonstration of the pie chart.", + class: PieChartViewController.self), + ItemDef(title: "Pie Chart with value lines", + subtitle: "A simple demonstration of the pie chart with polyline notes.", + class: PiePolylineChartViewController.self), + ItemDef(title: "Scatter Chart", + subtitle: "A simple demonstration of the scatter chart.", + class: ScatterChartViewController.self), + ItemDef(title: "Bubble Chart", + subtitle: "A simple demonstration of the bubble chart.", + class: BubbleChartViewController.self), + ItemDef(title: "Stacked Bar Chart", + subtitle: "A simple demonstration of a bar chart with stacked bars.", + class: StackedBarChartViewController.self), + ItemDef(title: "Stacked Bar Chart Negative", + subtitle: "A simple demonstration of stacked bars with negative and positive values.", + class: NegativeStackedBarChartViewController.self), + ItemDef(title: "Another Bar Chart", + subtitle: "Implementation of a BarChart that only shows values at the bottom.", + class: AnotherBarChartViewController.self), + ItemDef(title: "Multiple Lines Chart", + subtitle: "A line chart with multiple DataSet objects. One color per DataSet.", + class: MultipleLinesChartViewController.self), + ItemDef(title: "Multiple Bars Chart", + subtitle: "A bar chart with multiple DataSet objects. One multiple colors per DataSet.", + class: MultipleBarChartViewController.self), + ItemDef(title: "Candle Stick Chart", + subtitle: "Demonstrates usage of the CandleStickChart.", + class: CandleStickChartViewController.self), + ItemDef(title: "Cubic Line Chart", + subtitle: "Demonstrates cubic lines in a LineChart.", + class: CubicLineChartViewController.self), + ItemDef(title: "Radar Chart", + subtitle: "Demonstrates the use of a spider-web like (net) chart.", + class: RadarChartViewController.self), + ItemDef(title: "Colored Line Chart", + subtitle: "Shows a LineChart with different background and line color.", + class: ColoredLineChartViewController.self), + ItemDef(title: "Sinus Bar Chart", + subtitle: "A Bar Chart plotting the sinus function with 8.000 values.", + class: SinusBarChartViewController.self), + ItemDef(title: "BarChart positive / negative", + subtitle: "This demonstrates how to create a BarChart with positive and negative values in different colors.", + class: PositiveNegativeBarChartViewController.self), + ItemDef(title: "Time Line Chart", + subtitle: "Simple demonstration of a time-chart. This chart draws one line entry per hour originating from the current time in milliseconds.", + class: LineChartTimeViewController.self), + ItemDef(title: "Filled Line Chart", + subtitle: "This demonstrates how to fill an area between two LineDataSets.", + class: LineChartFilledViewController.self), + ItemDef(title: "Half Pie Chart", + subtitle: "This demonstrates how to create a 180 degree PieChart.", + class: HalfPieChartViewController.self) + ] + + override func viewDidLoad() { + super.viewDidLoad() + + self.title = "Charts Demonstration" + self.tableView.rowHeight = 70 + //FIXME: Add TimeLineChart + + } +} + +extension DemoListViewController: UITableViewDelegate, UITableViewDataSource { + func numberOfSections(in tableView: UITableView) -> Int { + return 1 + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return self.itemDefs.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let def = self.itemDefs[indexPath.row] + let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") ?? UITableViewCell(style: .subtitle, reuseIdentifier: "Cell") + cell.textLabel?.text = def.title + cell.detailTextLabel?.text = def.subtitle + cell.detailTextLabel?.numberOfLines = 0 + + return cell + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let def = self.itemDefs[indexPath.row] + + let vcClass = def.class as! UIViewController.Type + let vc = vcClass.init() + + self.navigationController?.pushViewController(vc, animated: true) + tableView.deselectRow(at: indexPath, animated: true) + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/AnotherBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/AnotherBarChartViewController.swift new file mode 100644 index 0000000000..45391a05b2 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/AnotherBarChartViewController.swift @@ -0,0 +1,102 @@ +// +// AnotherBarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class AnotherBarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BarChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Another Bar Chart" + + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleData, + .toggleBarBorders] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + chartView.maxVisibleCount = 60 + chartView.pinchZoomEnabled = false + chartView.drawBarShadowEnabled = false + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + + chartView.legend.enabled = false + + sliderX.value = 10 + sliderY.value = 100 + self.slidersValueChanged(nil) + } + + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value) + 1, range: Double(sliderY.value)) + } + + func setDataCount(_ count: Int, range: Double) { + let yVals = (0.. BarChartDataEntry in + let mult = range + 1 + let val = Double(arc4random_uniform(UInt32(mult))) + mult/3 + return BarChartDataEntry(x: Double(i), y: val) + } + + var set1: BarChartDataSet! = nil + if let set = chartView.data?.dataSets.first as? BarChartDataSet { + set1 = set + set1?.replaceEntries(yVals) + chartView.data?.notifyDataChanged() + chartView.notifyDataSetChanged() + } else { + set1 = BarChartDataSet(entries: yVals, label: "Data Set") + set1.colors = ChartColorTemplates.vordiplom() + set1.drawValuesEnabled = false + + let data = BarChartData(dataSet: set1) + chartView.data = data + chartView.fitBars = true + } + + chartView.setNeedsDisplay() + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/BarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/BarChartViewController.swift new file mode 100644 index 0000000000..5400646822 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/BarChartViewController.swift @@ -0,0 +1,157 @@ +// +// BarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts +#if canImport(UIKit) + import UIKit +#endif + +class BarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BarChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Bar Chart" + + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleData, + .toggleBarBorders] + + self.setup(barLineChartView: chartView) + + chartView.delegate = self + + chartView.drawBarShadowEnabled = false + chartView.drawValueAboveBarEnabled = false + + chartView.maxVisibleCount = 60 + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + xAxis.labelFont = .systemFont(ofSize: 10) + xAxis.granularity = 1 + xAxis.labelCount = 7 + xAxis.valueFormatter = DayAxisValueFormatter(chart: chartView) + + let leftAxisFormatter = NumberFormatter() + leftAxisFormatter.minimumFractionDigits = 0 + leftAxisFormatter.maximumFractionDigits = 1 + leftAxisFormatter.negativeSuffix = " $" + leftAxisFormatter.positiveSuffix = " $" + + let leftAxis = chartView.leftAxis + leftAxis.labelFont = .systemFont(ofSize: 10) + leftAxis.labelCount = 8 + leftAxis.valueFormatter = DefaultAxisValueFormatter(formatter: leftAxisFormatter) + leftAxis.labelPosition = .outsideChart + leftAxis.spaceTop = 0.15 + leftAxis.axisMinimum = 0 // FIXME: HUH?? this replaces startAtZero = YES + + let rightAxis = chartView.rightAxis + rightAxis.enabled = true + rightAxis.labelFont = .systemFont(ofSize: 10) + rightAxis.labelCount = 8 + rightAxis.valueFormatter = leftAxis.valueFormatter + rightAxis.spaceTop = 0.15 + rightAxis.axisMinimum = 0 + + let l = chartView.legend + l.horizontalAlignment = .left + l.verticalAlignment = .bottom + l.orientation = .horizontal + l.drawInside = false + l.form = .circle + l.formSize = 9 + l.font = UIFont(name: "HelveticaNeue-Light", size: 11)! + l.xEntrySpace = 4 +// chartView.legend = l + + let marker = XYMarkerView(color: UIColor(white: 180/250, alpha: 1), + font: .systemFont(ofSize: 12), + textColor: .white, + insets: UIEdgeInsets(top: 8, left: 8, bottom: 20, right: 8), + xAxisValueFormatter: chartView.xAxis.valueFormatter!) + marker.chartView = chartView + marker.minimumSize = CGSize(width: 80, height: 40) + chartView.marker = marker + + sliderX.value = 12 + sliderY.value = 50 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value) + 1, range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let start = 1 + + let yVals = (start.. BarChartDataEntry in + let mult = range + 1 + let val = Double(arc4random_uniform(mult)) + if arc4random_uniform(100) < 25 { + return BarChartDataEntry(x: Double(i), y: val, icon: UIImage(named: "icon")) + } else { + return BarChartDataEntry(x: Double(i), y: val) + } + } + + var set1: BarChartDataSet! = nil + if let set = chartView.data?.dataSets.first as? BarChartDataSet { + set1 = set + set1.replaceEntries(yVals) + chartView.data?.notifyDataChanged() + chartView.notifyDataSetChanged() + } else { + set1 = BarChartDataSet(entries: yVals, label: "The year 2017") + set1.colors = ChartColorTemplates.material() + set1.drawValuesEnabled = false + + let data = BarChartData(dataSet: set1) + data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 10)!) + data.barWidth = 0.9 + chartView.data = data + } + +// chartView.setNeedsDisplay() + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value + 2))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/BubbleChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/BubbleChartViewController.swift new file mode 100644 index 0000000000..064354021c --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/BubbleChartViewController.swift @@ -0,0 +1,129 @@ +// +// BubbleChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class BubbleChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BubbleChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Bubble Chart" + self.options = [.toggleValues, + .toggleIcons, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.dragEnabled = false + chartView.setScaleEnabled(true) + chartView.maxVisibleCount = 200 + chartView.pinchZoomEnabled = true + + chartView.legend.horizontalAlignment = .right + chartView.legend.verticalAlignment = .top + chartView.legend.orientation = .vertical + chartView.legend.drawInside = false + chartView.legend.font = UIFont(name: "HelveticaNeue-Light", size: 10)! + + chartView.leftAxis.labelFont = UIFont(name: "HelveticaNeue-Light", size: 10)! + chartView.leftAxis.spaceTop = 0.3 + chartView.leftAxis.spaceBottom = 0.3 + chartView.leftAxis.axisMinimum = 0 + + chartView.rightAxis.enabled = false + + chartView.xAxis.labelPosition = .bottom + chartView.xAxis.labelFont = UIFont(name: "HelveticaNeue-Light", size: 10)! + + sliderX.value = 10 + sliderY.value = 50 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let yVals1 = (0.. BubbleChartDataEntry in + let val = Double(arc4random_uniform(range)) + let size = CGFloat(arc4random_uniform(range)) + return BubbleChartDataEntry(x: Double(i), y: val, size: size, icon: UIImage(named: "icon")) + } + let yVals2 = (0.. BubbleChartDataEntry in + let val = Double(arc4random_uniform(range)) + let size = CGFloat(arc4random_uniform(range)) + return BubbleChartDataEntry(x: Double(i), y: val, size: size, icon: UIImage(named: "icon")) + } + let yVals3 = (0.. BubbleChartDataEntry in + let val = Double(arc4random_uniform(range)) + let size = CGFloat(arc4random_uniform(range)) + return BubbleChartDataEntry(x: Double(i), y: val, size: size) + } + + let set1 = BubbleChartDataSet(entries: yVals1, label: "DS 1") + set1.drawIconsEnabled = false + set1.setColor(ChartColorTemplates.colorful()[0], alpha: 0.5) + set1.drawValuesEnabled = true + + let set2 = BubbleChartDataSet(entries: yVals2, label: "DS 2") + set2.drawIconsEnabled = false + set2.iconsOffset = CGPoint(x: 0, y: 15) + set2.setColor(ChartColorTemplates.colorful()[1], alpha: 0.5) + set2.drawValuesEnabled = true + + let set3 = BubbleChartDataSet(entries: yVals3, label: "DS 3") + set3.setColor(ChartColorTemplates.colorful()[2], alpha: 0.5) + set3.drawValuesEnabled = true + + let data = BubbleChartData(dataSets: [set1, set2, set3]) + data.setDrawValues(false) + data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 7)!) + data.setHighlightCircleWidth(1.5) + data.setValueTextColor(.white) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/CandleStickChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CandleStickChartViewController.swift new file mode 100644 index 0000000000..42460be98e --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/CandleStickChartViewController.swift @@ -0,0 +1,131 @@ +// +// CandleStickChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class CandleStickChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: CandleStickChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Candle Stick Chart" + self.options = [.toggleValues, + .toggleIcons, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleShadowColorSameAsCandle, + .toggleShowCandleBar, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.dragEnabled = false + chartView.setScaleEnabled(true) + chartView.maxVisibleCount = 200 + chartView.pinchZoomEnabled = true + + chartView.legend.horizontalAlignment = .right + chartView.legend.verticalAlignment = .top + chartView.legend.orientation = .vertical + chartView.legend.drawInside = false + chartView.legend.font = UIFont(name: "HelveticaNeue-Light", size: 10)! + + chartView.leftAxis.labelFont = UIFont(name: "HelveticaNeue-Light", size: 10)! + chartView.leftAxis.spaceTop = 0.3 + chartView.leftAxis.spaceBottom = 0.3 + chartView.leftAxis.axisMinimum = 0 + + chartView.rightAxis.enabled = false + + chartView.xAxis.labelPosition = .bottom + chartView.xAxis.labelFont = UIFont(name: "HelveticaNeue-Light", size: 10)! + + sliderX.value = 10 + sliderY.value = 50 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let yVals1 = (0.. CandleChartDataEntry in + let mult = range + 1 + let val = Double(arc4random_uniform(40) + mult) + let high = Double(arc4random_uniform(9) + 8) + let low = Double(arc4random_uniform(9) + 8) + let open = Double(arc4random_uniform(6) + 1) + let close = Double(arc4random_uniform(6) + 1) + let even = i % 2 == 0 + + return CandleChartDataEntry(x: Double(i), shadowH: val + high, shadowL: val - low, open: even ? val + open : val - open, close: even ? val - close : val + close, icon: UIImage(named: "icon")!) + } + + let set1 = CandleChartDataSet(entries: yVals1, label: "Data Set") + set1.axisDependency = .left + set1.setColor(UIColor(white: 80/255, alpha: 1)) + set1.drawIconsEnabled = false + set1.shadowColor = .darkGray + set1.shadowWidth = 0.7 + set1.decreasingColor = .red + set1.decreasingFilled = true + set1.increasingColor = UIColor(red: 122/255, green: 242/255, blue: 84/255, alpha: 1) + set1.increasingFilled = false + set1.neutralColor = .blue + + let data = CandleChartData(dataSet: set1) + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleShadowColorSameAsCandle: + for set in chartView.data!.dataSets as! [CandleChartDataSet] { + set.shadowColorSameAsCandle = !set.shadowColorSameAsCandle + } + chartView.notifyDataSetChanged() + case .toggleShowCandleBar: + for set in chartView.data!.dataSets as! [CandleChartDataSet] { + set.showCandleBar = !set.showCandleBar + } + chartView.notifyDataSetChanged() + default: + super.handleOption(option, forChartView: chartView) + } + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + }} diff --git a/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift new file mode 100644 index 0000000000..c5dd3566c6 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift @@ -0,0 +1,79 @@ +// +// ColoredLineChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-04. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class ColoredLineChartViewController: DemoBaseViewController { + @IBOutlet var chartViews: [LineChartView]! + + override func viewDidLoad() { + super.viewDidLoad() + + self.title = "Colored Line Chart" + + let colors = [UIColor(red: 137/255, green: 230/255, blue: 81/255, alpha: 1), + UIColor(red: 240/255, green: 240/255, blue: 30/255, alpha: 1), + UIColor(red: 89/255, green: 199/255, blue: 250/255, alpha: 1), + UIColor(red: 250/255, green: 104/255, blue: 104/255, alpha: 1)] + + for (i, chartView) in chartViews.enumerated() { + let data = dataWithCount(36, range: 100) + data.setValueFont(UIFont(name: "HelveticaNeue", size: 7)!) + + setupChart(chartView, data: data, color: colors[i % colors.count]) + } + } + + func setupChart(_ chart: LineChartView, data: LineChartData, color: UIColor) { + (data.getDataSetByIndex(0) as! LineChartDataSet).circleHoleColor = color + + chart.delegate = self + chart.backgroundColor = color + + chart.chartDescription?.enabled = false + + chart.dragEnabled = true + chart.setScaleEnabled(true) + chart.pinchZoomEnabled = false + chart.setViewPortOffsets(left: 10, top: 0, right: 10, bottom: 0) + + chart.legend.enabled = false + + chart.leftAxis.enabled = false + chart.leftAxis.spaceTop = 0.4 + chart.leftAxis.spaceBottom = 0.4 + chart.rightAxis.enabled = false + chart.xAxis.enabled = false + + chart.data = data + + chart.animate(xAxisDuration: 2.5) + } + + func dataWithCount(_ count: Int, range: UInt32) -> LineChartData { + let yVals = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range)) + 3 + return ChartDataEntry(x: Double(i), y: val) + } + + let set1 = LineChartDataSet(entries: yVals, label: "DataSet 1") + + set1.lineWidth = 1.75 + set1.circleRadius = 5.0 + set1.circleHoleRadius = 2.5 + set1.setColor(.white) + set1.setCircleColor(.white) + set1.highlightColor = .white + set1.drawValuesEnabled = false + + return LineChartData(dataSet: set1) + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift new file mode 100644 index 0000000000..8ec5263bf2 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift @@ -0,0 +1,238 @@ +// +// CombinedChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts +#if canImport(UIKit) + import UIKit +#endif + +private let ITEM_COUNT = 12 + +class CombinedChartViewController: DemoBaseViewController { + @IBOutlet var chartView: CombinedChartView! + + let months = ["Jan", "Feb", "Mar", + "Apr", "May", "Jun", + "Jul", "Aug", "Sep", + "Oct", "Nov", "Dec"] + + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Combined Chart" + self.options = [.toggleLineValues, + .toggleBarValues, + .saveToGallery, + .toggleData, + .toggleBarBorders, + .removeDataSet] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.drawBarShadowEnabled = false + chartView.highlightFullBarEnabled = false + + + chartView.drawOrder = [DrawOrder.bar.rawValue, + DrawOrder.bubble.rawValue, + DrawOrder.candle.rawValue, + DrawOrder.line.rawValue, + DrawOrder.scatter.rawValue] + + let l = chartView.legend + l.wordWrapEnabled = true + l.horizontalAlignment = .center + l.verticalAlignment = .bottom + l.orientation = .horizontal + l.drawInside = false +// chartView.legend = l + + let rightAxis = chartView.rightAxis + rightAxis.axisMinimum = 0 + + let leftAxis = chartView.leftAxis + leftAxis.axisMinimum = 0 + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bothSided + xAxis.axisMinimum = 0 + xAxis.granularity = 1 + xAxis.valueFormatter = self + + self.updateChartData() + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setChartData() + } + + func setChartData() { + let data = CombinedChartData() + data.lineData = generateLineData() + data.barData = generateBarData() + data.bubbleData = generateBubbleData() + data.scatterData = generateScatterData() + data.candleData = generateCandleData() + + chartView.xAxis.axisMaximum = data.xMax + 0.25 + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleLineValues: + for set in chartView.data!.dataSets { + if let set = set as? LineChartDataSet { + set.drawValuesEnabled = !set .drawValuesEnabled + + } + } + chartView.setNeedsDisplay() + + case .toggleBarValues: + for set in chartView.data!.dataSets { + if let set = set as? BarChartDataSet { + set.drawValuesEnabled = !set .drawValuesEnabled + } + } + chartView.setNeedsDisplay() + + case .removeDataSet: + let rnd = Int(arc4random_uniform(UInt32(chartView.data!.dataSetCount))) + chartView.data?.removeDataSet(chartView.data!.getDataSetByIndex(rnd)) + chartView.data?.notifyDataChanged() + chartView.notifyDataSetChanged() + + default: + super.handleOption(option, forChartView: chartView) + } + } + + func generateLineData() -> LineChartData { + let entries = (0.. ChartDataEntry in + return ChartDataEntry(x: Double(i) + 0.5, y: Double(arc4random_uniform(15) + 5)) + } + + let set = LineChartDataSet(entries: entries, label: "Line DataSet") + set.setColor(UIColor(red: 240/255, green: 238/255, blue: 70/255, alpha: 1)) + set.lineWidth = 2.5 + set.setCircleColor(UIColor(red: 240/255, green: 238/255, blue: 70/255, alpha: 1)) + set.circleRadius = 5 + set.circleHoleRadius = 2.5 + set.fillColor = UIColor(red: 240/255, green: 238/255, blue: 70/255, alpha: 1) + set.mode = .cubicBezier + set.drawValuesEnabled = true + set.valueFont = .systemFont(ofSize: 10) + set.valueTextColor = UIColor(red: 240/255, green: 238/255, blue: 70/255, alpha: 1) + + set.axisDependency = .left + + return LineChartData(dataSet: set) + } + + func generateBarData() -> BarChartData { + let entries1 = (0.. BarChartDataEntry in + return BarChartDataEntry(x: 0, y: Double(arc4random_uniform(25) + 25)) + } + let entries2 = (0.. BarChartDataEntry in + return BarChartDataEntry(x: 0, yValues: [Double(arc4random_uniform(13) + 12), Double(arc4random_uniform(13) + 12)]) + } + + let set1 = BarChartDataSet(entries: entries1, label: "Bar 1") + set1.setColor(UIColor(red: 60/255, green: 220/255, blue: 78/255, alpha: 1)) + set1.valueTextColor = UIColor(red: 60/255, green: 220/255, blue: 78/255, alpha: 1) + set1.valueFont = .systemFont(ofSize: 10) + set1.axisDependency = .left + + let set2 = BarChartDataSet(entries: entries2, label: "") + set2.stackLabels = ["Stack 1", "Stack 2"] + set2.colors = [UIColor(red: 61/255, green: 165/255, blue: 255/255, alpha: 1), + UIColor(red: 23/255, green: 197/255, blue: 255/255, alpha: 1) + ] + set2.valueTextColor = UIColor(red: 61/255, green: 165/255, blue: 255/255, alpha: 1) + set2.valueFont = .systemFont(ofSize: 10) + set2.axisDependency = .left + + let groupSpace = 0.06 + let barSpace = 0.02 // x2 dataset + let barWidth = 0.45 // x2 dataset + // (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group" + + let data = BarChartData(dataSets: [set1, set2]) + data.barWidth = barWidth + + // make this BarData object grouped + data.groupBars(fromX: 0, groupSpace: groupSpace, barSpace: barSpace) + + return data + } + + func generateScatterData() -> ScatterChartData { + let entries = stride(from: 0.0, to: Double(ITEM_COUNT), by: 0.5).map { (i) -> ChartDataEntry in + return ChartDataEntry(x: i+0.25, y: Double(arc4random_uniform(10) + 55)) + } + + let set = ScatterChartDataSet(entries: entries, label: "Scatter DataSet") + set.colors = ChartColorTemplates.material() + set.scatterShapeSize = 4.5 + set.drawValuesEnabled = false + set.valueFont = .systemFont(ofSize: 10) + + return ScatterChartData(dataSet: set) + } + + func generateCandleData() -> CandleChartData { + let entries = stride(from: 0, to: ITEM_COUNT, by: 2).map { (i) -> CandleChartDataEntry in + return CandleChartDataEntry(x: Double(i+1), shadowH: 90, shadowL: 70, open: 85, close: 75) + } + + let set = CandleChartDataSet(entries: entries, label: "Candle DataSet") + set.setColor(UIColor(red: 80/255, green: 80/255, blue: 80/255, alpha: 1)) + set.decreasingColor = UIColor(red: 142/255, green: 150/255, blue: 175/255, alpha: 1) + set.shadowColor = .darkGray + set.valueFont = .systemFont(ofSize: 10) + set.drawValuesEnabled = false + + return CandleChartData(dataSet: set) + } + + func generateBubbleData() -> BubbleChartData { + let entries = (0.. BubbleChartDataEntry in + return BubbleChartDataEntry(x: Double(i) + 0.5, + y: Double(arc4random_uniform(10) + 105), + size: CGFloat(arc4random_uniform(50) + 105)) + } + + let set = BubbleChartDataSet(entries: entries, label: "Bubble DataSet") + set.setColors(ChartColorTemplates.vordiplom(), alpha: 1) + set.valueTextColor = .white + set.valueFont = .systemFont(ofSize: 10) + set.drawValuesEnabled = true + + return BubbleChartData(dataSet: set) + } +} + +extension CombinedChartViewController: IAxisValueFormatter { + func stringForValue(_ value: Double, axis: AxisBase?) -> String { + return months[Int(value) % months.count] + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift new file mode 100644 index 0000000000..c1a65a2d4f --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift @@ -0,0 +1,157 @@ +// +// CubicLineChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +private class CubicLineSampleFillFormatter: IFillFormatter { + func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat { + return -10 + } +} + +class CubicLineChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Cubic Line Chart" + + self.options = [.toggleValues, + .toggleFilled, + .toggleCircles, + .toggleCubic, + .toggleHorizontalCubic, + .toggleStepped, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.setViewPortOffsets(left: 0, top: 20, right: 0, bottom: 0) + chartView.backgroundColor = UIColor(red: 104/255, green: 241/255, blue: 175/255, alpha: 1) + + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.pinchZoomEnabled = false + chartView.maxHighlightDistance = 300 + + chartView.xAxis.enabled = false + + let yAxis = chartView.leftAxis + yAxis.labelFont = UIFont(name: "HelveticaNeue-Light", size:12)! + yAxis.setLabelCount(6, force: false) + yAxis.labelTextColor = .white + yAxis.labelPosition = .insideChart + yAxis.axisLineColor = .white + + chartView.rightAxis.enabled = false + chartView.legend.enabled = false + + sliderX.value = 45 + sliderY.value = 100 + self.slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 2, yAxisDuration: 2) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value + 1), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let yVals1 = (0.. ChartDataEntry in + let mult = range + 1 + let val = Double(arc4random_uniform(mult) + 20) + return ChartDataEntry(x: Double(i), y: val) + } + + let set1 = LineChartDataSet(entries: yVals1, label: "DataSet 1") + set1.mode = .cubicBezier + set1.drawCirclesEnabled = false + set1.lineWidth = 1.8 + set1.circleRadius = 4 + set1.setCircleColor(.white) + set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set1.fillColor = .white + set1.fillAlpha = 1 + set1.drawHorizontalHighlightIndicatorEnabled = false + set1.fillFormatter = CubicLineSampleFillFormatter() + + let data = LineChartData(dataSet: set1) + data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 9)!) + data.setDrawValues(false) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleFilled: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawFilledEnabled = !set.drawFilledEnabled + } + chartView.setNeedsDisplay() + + case .toggleCircles: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawCirclesEnabled = !set.drawCirclesEnabled + } + chartView.setNeedsDisplay() + + case .toggleCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier + } + chartView.setNeedsDisplay() + + case .toggleStepped: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .stepped) ? .linear : .stepped + } + chartView.setNeedsDisplay() + + case .toggleHorizontalCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier + } + chartView.setNeedsDisplay() + + default: + super.handleOption(option, forChartView: chartView) + } + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/HalfPieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/HalfPieChartViewController.swift new file mode 100644 index 0000000000..c02c5cafae --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/HalfPieChartViewController.swift @@ -0,0 +1,144 @@ +// +// HalfPieChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class HalfPieChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: PieChartView! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Half Pie Chart" + + self.options = [.toggleValues, + .toggleXValues, + .togglePercent, + .toggleHole, + .animateX, + .animateY, + .animateXY, + .spin, + .drawCenter, + .saveToGallery, + .toggleData] + + self.setup(pieChartView: chartView) + + chartView.delegate = self + + chartView.holeColor = .white + chartView.transparentCircleColor = NSUIColor.white.withAlphaComponent(0.43) + chartView.holeRadiusPercent = 0.58 + chartView.rotationEnabled = false + chartView.highlightPerTapEnabled = true + + chartView.maxAngle = 180 // Half chart + chartView.rotationAngle = 180 // Rotate to make the half on the upper side + chartView.centerTextOffset = CGPoint(x: 0, y: -20) + + let l = chartView.legend + l.horizontalAlignment = .center + l.verticalAlignment = .top + l.orientation = .horizontal + l.drawInside = false + l.xEntrySpace = 7 + l.yEntrySpace = 0 + l.yOffset = 0 +// chartView.legend = l + + // entry label styling + chartView.entryLabelColor = .white + chartView.entryLabelFont = UIFont(name:"HelveticaNeue-Light", size:12)! + + self.updateChartData() + + chartView.animate(xAxisDuration: 1.4, easingOption: .easeOutBack) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(4, range: 100) + } + + func setDataCount(_ count: Int, range: UInt32) { + let entries = (0.. PieChartDataEntry in + // IMPORTANT: In a PieChart, no values (Entry) should have the same xIndex (even if from different DataSets), since no values can be drawn above each other. + return PieChartDataEntry(value: Double(arc4random_uniform(range) + range / 5), + label: parties[i % parties.count]) + } + + let set = PieChartDataSet(entries: entries, label: "Election Results") + set.sliceSpace = 3 + set.selectionShift = 5 + set.colors = ChartColorTemplates.material() + + let data = PieChartData(dataSet: set) + + let pFormatter = NumberFormatter() + pFormatter.numberStyle = .percent + pFormatter.maximumFractionDigits = 1 + pFormatter.multiplier = 1 + pFormatter.percentSymbol = " %" + data.setValueFormatter(DefaultValueFormatter(formatter: pFormatter)) + + data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 11)!) + data.setValueTextColor(.white) + + chartView.data = data + + chartView.setNeedsDisplay() + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleXValues: + chartView.drawEntryLabelsEnabled = !chartView.drawEntryLabelsEnabled + chartView.setNeedsDisplay() + + case .togglePercent: + chartView.usePercentValuesEnabled = !chartView.usePercentValuesEnabled + chartView.setNeedsDisplay() + + case .toggleHole: + chartView.drawHoleEnabled = !chartView.drawHoleEnabled + chartView.setNeedsDisplay() + + case .drawCenter: + chartView.drawCenterTextEnabled = !chartView.drawCenterTextEnabled + chartView.setNeedsDisplay() + + case .animateX: + chartView.animate(xAxisDuration: 1.4) + + case .animateY: + chartView.animate(yAxisDuration: 1.4) + + case .animateXY: + chartView.animate(xAxisDuration: 1.4, yAxisDuration: 1.4) + + case .spin: + chartView.spin(duration: 2, + fromAngle: chartView.rotationAngle, + toAngle: chartView.rotationAngle + 360, + easingOption: .easeInCubic) + + default: + handleOption(option, forChartView: chartView) + } + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/HorizontalBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/HorizontalBarChartViewController.swift new file mode 100644 index 0000000000..ef77b9cab2 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/HorizontalBarChartViewController.swift @@ -0,0 +1,126 @@ +// +// HorizontalBarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class HorizontalBarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: HorizontalBarChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Horizontal Bar Char" + self.options = [.toggleValues, + .toggleIcons, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData, + .toggleBarBorders] + + self.setup(barLineChartView: chartView) + + chartView.delegate = self + + chartView.drawBarShadowEnabled = false + chartView.drawValueAboveBarEnabled = true + + chartView.maxVisibleCount = 60 + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + xAxis.labelFont = .systemFont(ofSize: 10) + xAxis.drawAxisLineEnabled = true + xAxis.granularity = 10 + + let leftAxis = chartView.leftAxis + leftAxis.labelFont = .systemFont(ofSize: 10) + leftAxis.drawAxisLineEnabled = true + leftAxis.drawGridLinesEnabled = true + leftAxis.axisMinimum = 0 + + let rightAxis = chartView.rightAxis + rightAxis.enabled = true + rightAxis.labelFont = .systemFont(ofSize: 10) + rightAxis.drawAxisLineEnabled = true + rightAxis.axisMinimum = 0 + + let l = chartView.legend + l.horizontalAlignment = .left + l.verticalAlignment = .bottom + l.orientation = .horizontal + l.drawInside = false + l.form = .square + l.formSize = 8 + l.font = UIFont(name: "HelveticaNeue-Light", size: 11)! + l.xEntrySpace = 4 +// chartView.legend = l + + chartView.fitBars = true + + sliderX.value = 12 + sliderY.value = 50 + slidersValueChanged(nil) + + chartView.animate(yAxisDuration: 2.5) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value) + 1, range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let barWidth = 9.0 + let spaceForBar = 10.0 + + let yVals = (0.. BarChartDataEntry in + let mult = range + 1 + let val = Double(arc4random_uniform(mult)) + return BarChartDataEntry(x: Double(i)*spaceForBar, y: val, icon: #imageLiteral(resourceName: "icon")) + } + + let set1 = BarChartDataSet(entries: yVals, label: "DataSet") + set1.drawIconsEnabled = false + + let data = BarChartData(dataSet: set1) + data.setValueFont(UIFont(name:"HelveticaNeue-Light", size:10)!) + data.barWidth = barWidth + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift new file mode 100644 index 0000000000..43e5ff4f78 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift @@ -0,0 +1,189 @@ +// +// LineChart1ViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class LineChart1ViewController: DemoBaseViewController { + + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Line Chart 1" + self.options = [.toggleValues, + .toggleFilled, + .toggleCircles, + .toggleCubic, + .toggleHorizontalCubic, + .toggleIcons, + .toggleStepped, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.pinchZoomEnabled = true + + // x-axis limit line + let llXAxis = ChartLimitLine(limit: 10, label: "Index 10") + llXAxis.lineWidth = 4 + llXAxis.lineDashLengths = [10, 10, 0] + llXAxis.labelPosition = .bottomRight + llXAxis.valueFont = .systemFont(ofSize: 10) + + chartView.xAxis.gridLineDashLengths = [10, 10] + chartView.xAxis.gridLineDashPhase = 0 + + let ll1 = ChartLimitLine(limit: 150, label: "Upper Limit") + ll1.lineWidth = 4 + ll1.lineDashLengths = [5, 5] + ll1.labelPosition = .topRight + ll1.valueFont = .systemFont(ofSize: 10) + + let ll2 = ChartLimitLine(limit: -30, label: "Lower Limit") + ll2.lineWidth = 4 + ll2.lineDashLengths = [5,5] + ll2.labelPosition = .bottomRight + ll2.valueFont = .systemFont(ofSize: 10) + + let leftAxis = chartView.leftAxis + leftAxis.removeAllLimitLines() + leftAxis.addLimitLine(ll1) + leftAxis.addLimitLine(ll2) + leftAxis.axisMaximum = 200 + leftAxis.axisMinimum = -50 + leftAxis.gridLineDashLengths = [5, 5] + leftAxis.drawLimitLinesBehindDataEnabled = true + + chartView.rightAxis.enabled = false + + //[_chartView.viewPortHandler setMaximumScaleY: 2.f]; + //[_chartView.viewPortHandler setMaximumScaleX: 2.f]; + + let marker = BalloonMarker(color: UIColor(white: 180/255, alpha: 1), + font: .systemFont(ofSize: 12), + textColor: .white, + insets: UIEdgeInsets(top: 8, left: 8, bottom: 20, right: 8)) + marker.chartView = chartView + marker.minimumSize = CGSize(width: 80, height: 40) + chartView.marker = marker + + chartView.legend.form = .line + + sliderX.value = 45 + sliderY.value = 100 + slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 2.5) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let values = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val, icon: #imageLiteral(resourceName: "icon")) + } + + let set1 = LineChartDataSet(entries: values, label: "DataSet 1") + set1.drawIconsEnabled = false + + set1.lineDashLengths = [5, 2.5] + set1.highlightLineDashLengths = [5, 2.5] + set1.setColor(.black) + set1.setCircleColor(.black) + set1.lineWidth = 1 + set1.circleRadius = 3 + set1.drawCircleHoleEnabled = false + set1.valueFont = .systemFont(ofSize: 9) + set1.formLineDashLengths = [5, 2.5] + set1.formLineWidth = 1 + set1.formSize = 15 + + let gradientColors = [ChartColorTemplates.colorFromString("#00ff0000").cgColor, + ChartColorTemplates.colorFromString("#ffff0000").cgColor] + let gradient = CGGradient(colorsSpace: nil, colors: gradientColors as CFArray, locations: nil)! + + set1.fillAlpha = 1 + set1.fill = Fill(linearGradient: gradient, angle: 90) //.linearGradient(gradient, angle: 90) + set1.drawFilledEnabled = true + + let data = LineChartData(dataSet: set1) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleFilled: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawFilledEnabled = !set.drawFilledEnabled + } + chartView.setNeedsDisplay() + + case .toggleCircles: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawCirclesEnabled = !set.drawCirclesEnabled + } + chartView.setNeedsDisplay() + + case .toggleCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier + } + chartView.setNeedsDisplay() + + case .toggleStepped: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .stepped) ? .linear : .stepped + } + chartView.setNeedsDisplay() + + case .toggleHorizontalCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier + } + chartView.setNeedsDisplay() + + default: + super.handleOption(option, forChartView: chartView) + } + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift new file mode 100644 index 0000000000..d2ee8c8297 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift @@ -0,0 +1,202 @@ +// +// LineChart2ViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class LineChart2ViewController: DemoBaseViewController { + + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Line Chart 2" + self.options = [.toggleValues, + .toggleFilled, + .toggleCircles, + .toggleCubic, + .toggleHorizontalCubic, + .toggleStepped, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.pinchZoomEnabled = true + + let l = chartView.legend + l.form = .line + l.font = UIFont(name: "HelveticaNeue-Light", size: 11)! + l.textColor = .white + l.horizontalAlignment = .left + l.verticalAlignment = .bottom + l.orientation = .horizontal + l.drawInside = false + + let xAxis = chartView.xAxis + xAxis.labelFont = .systemFont(ofSize: 11) + xAxis.labelTextColor = .white + xAxis.drawAxisLineEnabled = false + + let leftAxis = chartView.leftAxis + leftAxis.labelTextColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1) + leftAxis.axisMaximum = 200 + leftAxis.axisMinimum = 0 + leftAxis.drawGridLinesEnabled = true + leftAxis.granularityEnabled = true + + let rightAxis = chartView.rightAxis + rightAxis.labelTextColor = .red + rightAxis.axisMaximum = 900 + rightAxis.axisMinimum = -200 + rightAxis.granularityEnabled = false + + sliderX.value = 20 + sliderY.value = 30 + slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 2.5) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value + 1), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let yVals1 = (0.. ChartDataEntry in + let mult = range / 2 + let val = Double(arc4random_uniform(mult) + 50) + return ChartDataEntry(x: Double(i), y: val) + } + let yVals2 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 450) + return ChartDataEntry(x: Double(i), y: val) + } + let yVals3 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 500) + return ChartDataEntry(x: Double(i), y: val) + } + + let set1 = LineChartDataSet(entries: yVals1, label: "DataSet 1") + set1.axisDependency = .left + set1.setColor(UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)) + set1.setCircleColor(.white) + set1.lineWidth = 2 + set1.circleRadius = 3 + set1.fillAlpha = 65/255 + set1.fillColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1) + set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set1.drawCircleHoleEnabled = false + + let set2 = LineChartDataSet(entries: yVals2, label: "DataSet 2") + set2.axisDependency = .right + set2.setColor(.red) + set2.setCircleColor(.white) + set2.lineWidth = 2 + set2.circleRadius = 3 + set2.fillAlpha = 65/255 + set2.fillColor = .red + set2.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set2.drawCircleHoleEnabled = false + + let set3 = LineChartDataSet(entries: yVals3, label: "DataSet 3") + set3.axisDependency = .right + set3.setColor(.yellow) + set3.setCircleColor(.white) + set3.lineWidth = 2 + set3.circleRadius = 3 + set3.fillAlpha = 65/255 + set3.fillColor = UIColor.yellow.withAlphaComponent(200/255) + set3.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set3.drawCircleHoleEnabled = false + + let data = LineChartData(dataSets: [set1, set2, set3]) + data.setValueTextColor(.white) + data.setValueFont(.systemFont(ofSize: 9)) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleFilled: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawFilledEnabled = !set.drawFilledEnabled + } + chartView.setNeedsDisplay() + + case .toggleCircles: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawCirclesEnabled = !set.drawCirclesEnabled + } + chartView.setNeedsDisplay() + + case .toggleCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier + } + chartView.setNeedsDisplay() + + case .toggleStepped: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .stepped) ? .linear : .stepped + } + chartView.setNeedsDisplay() + + case .toggleHorizontalCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier + } + chartView.setNeedsDisplay() + + default: + super.handleOption(option, forChartView: chartView) + } + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +//} + // TODO: Declarations in extensions cannot override yet. +//extension LineChart2ViewController { + override func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { + super.chartValueSelected(chartView, entry: entry, highlight: highlight) + + self.chartView.centerViewToAnimated(xValue: entry.x, yValue: entry.y, + axis: self.chartView.data!.getDataSetByIndex(highlight.dataSetIndex).axisDependency, + duration: 1) + //[_chartView moveViewToAnimatedWithXValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; + //[_chartView zoomAndCenterViewAnimatedWithScaleX:1.8 scaleY:1.8 xValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/LineChartFilledViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartFilledViewController.swift new file mode 100644 index 0000000000..3d17d968a7 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/LineChartFilledViewController.swift @@ -0,0 +1,119 @@ +// +// LineChartFilledViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class LineChartFilledViewController: DemoBaseViewController { + + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Filled Line Chart" + + chartView.delegate = self + + chartView.backgroundColor = .white + chartView.gridBackgroundColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 150/255) + chartView.drawGridBackgroundEnabled = true + + chartView.drawBordersEnabled = true + + chartView.chartDescription?.enabled = false + + chartView.pinchZoomEnabled = false + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + + chartView.legend.enabled = false + + chartView.xAxis.enabled = false + + let leftAxis = chartView.leftAxis + leftAxis.axisMaximum = 900 + leftAxis.axisMinimum = -250 + leftAxis.drawAxisLineEnabled = false + + chartView.rightAxis.enabled = false + + sliderX.value = 100 + sliderY.value = 60 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let yVals1 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 50) + return ChartDataEntry(x: Double(i), y: val) + } + let yVals2 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 450) + return ChartDataEntry(x: Double(i), y: val) + } + + let set1 = LineChartDataSet(entries: yVals1, label: "DataSet 1") + set1.axisDependency = .left + set1.setColor(UIColor(red: 255/255, green: 241/255, blue: 46/255, alpha: 1)) + set1.drawCirclesEnabled = false + set1.lineWidth = 2 + set1.circleRadius = 3 + set1.fillAlpha = 1 + set1.drawFilledEnabled = true + set1.fillColor = .white + set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set1.drawCircleHoleEnabled = false + set1.fillFormatter = DefaultFillFormatter { _,_ -> CGFloat in + return CGFloat(self.chartView.leftAxis.axisMinimum) + } + + let set2 = LineChartDataSet(entries: yVals2, label: "DataSet 2") + set2.axisDependency = .left + set2.setColor(UIColor(red: 255/255, green: 241/255, blue: 46/255, alpha: 1)) + set2.drawCirclesEnabled = false + set2.lineWidth = 2 + set2.circleRadius = 3 + set2.fillAlpha = 1 + set2.drawFilledEnabled = true + set2.fillColor = .white + set2.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set2.drawCircleHoleEnabled = false + set2.fillFormatter = DefaultFillFormatter { _,_ -> CGFloat in + return CGFloat(self.chartView.leftAxis.axisMaximum) + } + + let data = LineChartData(dataSets: [set1, set2]) + data.setDrawValues(false) + + chartView.data = data + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift new file mode 100644 index 0000000000..b5e14da3de --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift @@ -0,0 +1,163 @@ +// +// LineChartTimeViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class LineChartTimeViewController: DemoBaseViewController { + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderTextX: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Time Line Chart" + self.options = [.toggleValues, + .toggleFilled, + .toggleCircles, + .toggleCubic, + .toggleHorizontalCubic, + .toggleStepped, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.pinchZoomEnabled = false + chartView.highlightPerDragEnabled = true + + chartView.backgroundColor = .white + + chartView.legend.enabled = false + + let xAxis = chartView.xAxis + xAxis.labelPosition = .topInside + xAxis.labelFont = .systemFont(ofSize: 10, weight: .light) + xAxis.labelTextColor = UIColor(red: 255/255, green: 192/255, blue: 56/255, alpha: 1) + xAxis.drawAxisLineEnabled = false + xAxis.drawGridLinesEnabled = true + xAxis.centerAxisLabelsEnabled = true + xAxis.granularity = 3600 + xAxis.valueFormatter = DateValueFormatter() + + let leftAxis = chartView.leftAxis + leftAxis.labelPosition = .insideChart + leftAxis.labelFont = .systemFont(ofSize: 12, weight: .light) + leftAxis.drawGridLinesEnabled = true + leftAxis.granularityEnabled = true + leftAxis.axisMinimum = 0 + leftAxis.axisMaximum = 170 + leftAxis.yOffset = -9 + leftAxis.labelTextColor = UIColor(red: 255/255, green: 192/255, blue: 56/255, alpha: 1) + + + chartView.rightAxis.enabled = false + + chartView.legend.form = .line + + sliderX.value = 100 + slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 2.5) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: 30) + } + + func setDataCount(_ count: Int, range: UInt32) { + let now = Date().timeIntervalSince1970 + let hourSeconds: TimeInterval = 3600 + + let from = now - (Double(count) / 2) * hourSeconds + let to = now + (Double(count) / 2) * hourSeconds + + let values = stride(from: from, to: to, by: hourSeconds).map { (x) -> ChartDataEntry in + let y = arc4random_uniform(range) + 50 + return ChartDataEntry(x: x, y: Double(y)) + } + + let set1 = LineChartDataSet(entries: values, label: "DataSet 1") + set1.axisDependency = .left + set1.setColor(UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)) + set1.lineWidth = 1.5 + set1.drawCirclesEnabled = false + set1.drawValuesEnabled = false + set1.fillAlpha = 0.26 + set1.fillColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1) + set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) + set1.drawCircleHoleEnabled = false + + let data = LineChartData(dataSet: set1) + data.setValueTextColor(.white) + data.setValueFont(.systemFont(ofSize: 9, weight: .light)) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleFilled: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawFilledEnabled = !set.drawFilledEnabled + } + chartView.setNeedsDisplay() + + case .toggleCircles: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.drawCirclesEnabled = !set.drawCirclesEnabled + } + chartView.setNeedsDisplay() + + case .toggleCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier + } + chartView.setNeedsDisplay() + + case .toggleStepped: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .stepped) ? .linear : .stepped + } + chartView.setNeedsDisplay() + + case .toggleHorizontalCubic: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier + } + chartView.setNeedsDisplay() + + default: + super.handleOption(option, forChartView: chartView) + } + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/MultipleBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleBarChartViewController.swift new file mode 100644 index 0000000000..ca7f54a353 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/MultipleBarChartViewController.swift @@ -0,0 +1,156 @@ +// +// MultipleBarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class MultipleBarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BarChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Multiple Bar Chart" + + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData, + .toggleBarBorders] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.pinchZoomEnabled = false + chartView.drawBarShadowEnabled = false + + let marker = BalloonMarker(color: UIColor(white: 180/255, alpha: 1), font: .systemFont(ofSize: 12), textColor: .white, insets: UIEdgeInsets(top: 8, left: 8, bottom: 20, right: 8)) + marker.chartView = chartView + marker.minimumSize = CGSize(width: 80, height: 40) + chartView.marker = marker + + let l = chartView.legend + l.horizontalAlignment = .right + l.verticalAlignment = .top + l.orientation = .vertical + l.drawInside = true + l.font = .systemFont(ofSize: 8, weight: .light) + l.yOffset = 10 + l.xOffset = 10 + l.yEntrySpace = 0 +// chartView.legend = l + + let xAxis = chartView.xAxis + xAxis.labelFont = .systemFont(ofSize: 10, weight: .light) + xAxis.granularity = 1 + xAxis.centerAxisLabelsEnabled = true + xAxis.valueFormatter = IntAxisValueFormatter() + + let leftAxisFormatter = NumberFormatter() + leftAxisFormatter.maximumFractionDigits = 1 + + let leftAxis = chartView.leftAxis + leftAxis.labelFont = .systemFont(ofSize: 10, weight: .light) + leftAxis.valueFormatter = LargeValueFormatter() + leftAxis.spaceTop = 0.35 + leftAxis.axisMinimum = 0 + + chartView.rightAxis.enabled = false + + sliderX.value = 10 + sliderY.value = 100 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let groupSpace = 0.08 + let barSpace = 0.03 + let barWidth = 0.2 + // (0.2 + 0.03) * 4 + 0.08 = 1.00 -> interval per "group" + + let randomMultiplier = range * 100000 + let groupCount = count + 1 + let startYear = 1980 + let endYear = startYear + groupCount + + let block: (Int) -> BarChartDataEntry = { (i) -> BarChartDataEntry in + return BarChartDataEntry(x: Double(i), y: Double(arc4random_uniform(randomMultiplier))) + } + let yVals1 = (startYear ..< endYear).map(block) + let yVals2 = (startYear ..< endYear).map(block) + let yVals3 = (startYear ..< endYear).map(block) + let yVals4 = (startYear ..< endYear).map(block) + + let set1 = BarChartDataSet(entries: yVals1, label: "Company A") + set1.setColor(UIColor(red: 104/255, green: 241/255, blue: 175/255, alpha: 1)) + + let set2 = BarChartDataSet(entries: yVals2, label: "Company B") + set2.setColor(UIColor(red: 164/255, green: 228/255, blue: 251/255, alpha: 1)) + + let set3 = BarChartDataSet(entries: yVals3, label: "Company C") + set3.setColor(UIColor(red: 242/255, green: 247/255, blue: 158/255, alpha: 1)) + + let set4 = BarChartDataSet(entries: yVals4, label: "Company D") + set4.setColor(UIColor(red: 255/255, green: 102/255, blue: 0/255, alpha: 1)) + + let data = BarChartData(dataSets: [set1, set2, set3, set4]) + data.setValueFont(.systemFont(ofSize: 10, weight: .light)) + data.setValueFormatter(LargeValueFormatter()) + + // specify the width each bar should have + data.barWidth = barWidth + + // restrict the x-axis range + chartView.xAxis.axisMinimum = Double(startYear) + + // groupWidthWithGroupSpace(...) is a helper that calculates the width each group needs based on the provided parameters + chartView.xAxis.axisMaximum = Double(startYear) + data.groupWidth(groupSpace: groupSpace, barSpace: barSpace) * Double(groupCount) + + data.groupBars(fromX: Double(startYear), groupSpace: groupSpace, barSpace: barSpace) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + let startYear = 1980 + let endYear = startYear + Int(sliderX.value) + + sliderTextX.text = "\(startYear)-\(endYear)" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift new file mode 100644 index 0000000000..29c8efbb5e --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift @@ -0,0 +1,140 @@ +// +// MultipleLinesChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class MultipleLinesChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: LineChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Multiple Lines Chart" + self.options = [.toggleValues, + .toggleFilled, + .toggleCircles, + .toggleCubic, + .toggleStepped, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.leftAxis.enabled = false + chartView.rightAxis.drawAxisLineEnabled = false + chartView.xAxis.drawAxisLineEnabled = false + + chartView.drawBordersEnabled = false + chartView.setScaleEnabled(true) + + let l = chartView.legend + l.horizontalAlignment = .right + l.verticalAlignment = .top + l.orientation = .vertical + l.drawInside = false +// chartView.legend = l + + sliderX.value = 20 + sliderY.value = 100 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + // TODO: Refine data creation + func setDataCount(_ count: Int, range: UInt32) { + let colors = ChartColorTemplates.vordiplom()[0...2] + + let block: (Int) -> ChartDataEntry = { (i) -> ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val) + } + let dataSets = (0..<3).map { i -> LineChartDataSet in + let yVals = (0.. String { + return String(format: "%03.0f-%03.0f", value, value + 10) + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift new file mode 100644 index 0000000000..4f8cb3180b --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift @@ -0,0 +1,155 @@ +// +// PieChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class PieChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: PieChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Pie Chart" + + self.options = [.toggleValues, + .toggleXValues, + .togglePercent, + .toggleHole, + .toggleIcons, + .animateX, + .animateY, + .animateXY, + .spin, + .drawCenter, + .saveToGallery, + .toggleData] + + self.setup(pieChartView: chartView) + + chartView.delegate = self + + let l = chartView.legend + l.horizontalAlignment = .right + l.verticalAlignment = .top + l.orientation = .vertical + l.xEntrySpace = 7 + l.yEntrySpace = 0 + l.yOffset = 0 +// chartView.legend = l + + // entry label styling + chartView.entryLabelColor = .white + chartView.entryLabelFont = .systemFont(ofSize: 12, weight: .light) + + sliderX.value = 4 + sliderY.value = 100 + self.slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 1.4, easingOption: .easeOutBack) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let entries = (0.. PieChartDataEntry in + // IMPORTANT: In a PieChart, no values (Entry) should have the same xIndex (even if from different DataSets), since no values can be drawn above each other. + return PieChartDataEntry(value: Double(arc4random_uniform(range) + range / 5), + label: parties[i % parties.count], + icon: #imageLiteral(resourceName: "icon")) + } + + let set = PieChartDataSet(entries: entries, label: "Election Results") + set.drawIconsEnabled = false + set.sliceSpace = 2 + + + set.colors = ChartColorTemplates.vordiplom() + + ChartColorTemplates.joyful() + + ChartColorTemplates.colorful() + + ChartColorTemplates.liberty() + + ChartColorTemplates.pastel() + + [UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)] + + let data = PieChartData(dataSet: set) + + let pFormatter = NumberFormatter() + pFormatter.numberStyle = .percent + pFormatter.maximumFractionDigits = 1 + pFormatter.multiplier = 1 + pFormatter.percentSymbol = " %" + data.setValueFormatter(DefaultValueFormatter(formatter: pFormatter)) + + data.setValueFont(.systemFont(ofSize: 11, weight: .light)) + data.setValueTextColor(.white) + + chartView.data = data + chartView.highlightValues(nil) + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleXValues: + chartView.drawEntryLabelsEnabled = !chartView.drawEntryLabelsEnabled + chartView.setNeedsDisplay() + + case .togglePercent: + chartView.usePercentValuesEnabled = !chartView.usePercentValuesEnabled + chartView.setNeedsDisplay() + + case .toggleHole: + chartView.drawHoleEnabled = !chartView.drawHoleEnabled + chartView.setNeedsDisplay() + + case .drawCenter: + chartView.drawCenterTextEnabled = !chartView.drawCenterTextEnabled + chartView.setNeedsDisplay() + + case .animateX: + chartView.animate(xAxisDuration: 1.4) + + case .animateY: + chartView.animate(yAxisDuration: 1.4) + + case .animateXY: + chartView.animate(xAxisDuration: 1.4, yAxisDuration: 1.4) + + case .spin: + chartView.spin(duration: 2, + fromAngle: chartView.rotationAngle, + toAngle: chartView.rotationAngle + 360, + easingOption: .easeInCubic) + + default: + handleOption(option, forChartView: chartView) + } + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift new file mode 100644 index 0000000000..a25000739b --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift @@ -0,0 +1,145 @@ +// +// PiePolylineChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +import UIKit +import Charts + +class PiePolylineChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: PieChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Pie Poly Line Chart" + + self.options = [.toggleValues, + .toggleXValues, + .togglePercent, + .toggleHole, + .animateX, + .animateY, + .animateXY, + .spin, + .drawCenter, + .saveToGallery, + .toggleData] + + self.setup(pieChartView: chartView) + + chartView.delegate = self + + chartView.legend.enabled = false + chartView.setExtraOffsets(left: 20, top: 0, right: 20, bottom: 0) + + sliderX.value = 40 + sliderY.value = 100 + self.slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 1.4, easingOption: .easeOutBack) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let entries = (0.. PieChartDataEntry in + // IMPORTANT: In a PieChart, no values (Entry) should have the same xIndex (even if from different DataSets), since no values can be drawn above each other. + return PieChartDataEntry(value: Double(arc4random_uniform(range) + range / 5), + label: parties[i % parties.count]) + } + + let set = PieChartDataSet(entries: entries, label: "Election Results") + set.sliceSpace = 2 + + + set.colors = ChartColorTemplates.vordiplom() + + ChartColorTemplates.joyful() + + ChartColorTemplates.colorful() + + ChartColorTemplates.liberty() + + ChartColorTemplates.pastel() + + [UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)] + + set.valueLinePart1OffsetPercentage = 0.8 + set.valueLinePart1Length = 0.2 + set.valueLinePart2Length = 0.4 + //set.xValuePosition = .outsideSlice + set.yValuePosition = .outsideSlice + + let data = PieChartData(dataSet: set) + + let pFormatter = NumberFormatter() + pFormatter.numberStyle = .percent + pFormatter.maximumFractionDigits = 1 + pFormatter.multiplier = 1 + pFormatter.percentSymbol = " %" + data.setValueFormatter(DefaultValueFormatter(formatter: pFormatter)) + data.setValueFont(.systemFont(ofSize: 11, weight: .light)) + data.setValueTextColor(.black) + + chartView.data = data + chartView.highlightValues(nil) + } + + override func optionTapped(_ option: Option) { + switch option { + case .toggleXValues: + chartView.drawEntryLabelsEnabled = !chartView.drawEntryLabelsEnabled + chartView.setNeedsDisplay() + + case .togglePercent: + chartView.usePercentValuesEnabled = !chartView.usePercentValuesEnabled + chartView.setNeedsDisplay() + + case .toggleHole: + chartView.drawHoleEnabled = !chartView.drawHoleEnabled + chartView.setNeedsDisplay() + + case .drawCenter: + chartView.drawCenterTextEnabled = !chartView.drawCenterTextEnabled + chartView.setNeedsDisplay() + + case .animateX: + chartView.animate(xAxisDuration: 1.4) + + case .animateY: + chartView.animate(yAxisDuration: 1.4) + + case .animateXY: + chartView.animate(xAxisDuration: 1.4, yAxisDuration: 1.4) + + case .spin: + chartView.spin(duration: 2, + fromAngle: chartView.rotationAngle, + toAngle: chartView.rotationAngle + 360, + easingOption: .easeInCubic) + + default: + handleOption(option, forChartView: chartView) + } + } + + // MARK: - Actions + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/PositiveNegativeBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PositiveNegativeBarChartViewController.swift new file mode 100644 index 0000000000..36771b97c0 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/PositiveNegativeBarChartViewController.swift @@ -0,0 +1,122 @@ +// +// PositiveNegativeBarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class PositiveNegativeBarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BarChartView! + + let dataLabels = ["12-19", + "12-30", + "12-31", + "01-01", + "01-02"] + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Positive/Negative Bar Chart" + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData, + .toggleBarBorders] + + self.setup(barLineChartView: chartView) + + chartView.delegate = self + + chartView.setExtraOffsets(left: 70, top: -30, right: 70, bottom: 10) + + chartView.drawBarShadowEnabled = false + chartView.drawValueAboveBarEnabled = true + + chartView.chartDescription?.enabled = false + + chartView.rightAxis.enabled = false + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + xAxis.labelFont = .systemFont(ofSize: 13) + xAxis.drawAxisLineEnabled = false + xAxis.labelTextColor = .lightGray + xAxis.labelCount = 5 + xAxis.centerAxisLabelsEnabled = true + xAxis.granularity = 1 + xAxis.valueFormatter = self + + let leftAxis = chartView.leftAxis + leftAxis.drawLabelsEnabled = false + leftAxis.spaceTop = 0.25 + leftAxis.spaceBottom = 0.25 + leftAxis.drawAxisLineEnabled = false + leftAxis.drawZeroLineEnabled = true + leftAxis.zeroLineColor = .gray + leftAxis.zeroLineWidth = 0.7 + + self.updateChartData() + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setChartData() + } + + func setChartData() { + let yVals = [BarChartDataEntry(x: 0, y: -224.1), + BarChartDataEntry(x: 1, y: 238.5), + BarChartDataEntry(x: 2, y: 1280.1), + BarChartDataEntry(x: 3, y: -442.3), + BarChartDataEntry(x: 4, y: -2280.1) + ] + + let red = UIColor(red: 211/255, green: 74/255, blue: 88/255, alpha: 1) + let green = UIColor(red: 110/255, green: 190/255, blue: 102/255, alpha: 1) + let colors = yVals.map { (entry) -> NSUIColor in + return entry.y > 0 ? red : green + } + + let set = BarChartDataSet(entries: yVals, label: "Values") + set.colors = colors + set.valueColors = colors + + let data = BarChartData(dataSet: set) + data.setValueFont(.systemFont(ofSize: 13)) + + let formatter = NumberFormatter() + formatter.maximumFractionDigits = 1 + data.setValueFormatter(DefaultValueFormatter(formatter: formatter)) + data.barWidth = 0.8 + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } +} + +extension PositiveNegativeBarChartViewController: IAxisValueFormatter { + func stringForValue(_ value: Double, axis: AxisBase?) -> String { + return dataLabels[min(max(Int(value), 0), dataLabels.count - 1)] + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift new file mode 100644 index 0000000000..79f308d66a --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift @@ -0,0 +1,205 @@ +// +// RadarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class RadarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: RadarChartView! + + let activities = ["Burger", "Steak", "Salad", "Pasta", "Pizza"] + var originalBarBgColor: UIColor! + var originalBarTintColor: UIColor! + var originalBarStyle: UIBarStyle! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Radar Chart" + self.options = [.toggleValues, + .toggleHighlight, + .toggleHighlightCircle, + .toggleXLabels, + .toggleYLabels, + .toggleRotate, + .toggleFilled, + .animateX, + .animateY, + .animateXY, + .spin, + .saveToGallery, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + chartView.webLineWidth = 1 + chartView.innerWebLineWidth = 1 + chartView.webColor = .lightGray + chartView.innerWebColor = .lightGray + chartView.webAlpha = 1 + + let marker = RadarMarkerView.viewFromXib()! + marker.chartView = chartView + chartView.marker = marker + + let xAxis = chartView.xAxis + xAxis.labelFont = .systemFont(ofSize: 9, weight: .light) + xAxis.xOffset = 0 + xAxis.yOffset = 0 + xAxis.valueFormatter = self + xAxis.labelTextColor = .white + + let yAxis = chartView.yAxis + yAxis.labelFont = .systemFont(ofSize: 9, weight: .light) + yAxis.labelCount = 5 + yAxis.axisMinimum = 0 + yAxis.axisMaximum = 80 + yAxis.drawLabelsEnabled = false + + let l = chartView.legend + l.horizontalAlignment = .center + l.verticalAlignment = .top + l.orientation = .horizontal + l.drawInside = false + l.font = .systemFont(ofSize: 10, weight: .light) + l.xEntrySpace = 7 + l.yEntrySpace = 5 + l.textColor = .white +// chartView.legend = l + + self.updateChartData() + + chartView.animate(xAxisDuration: 1.4, yAxisDuration: 1.4, easingOption: .easeOutBack) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + UIView.animate(withDuration: 0.15) { + let navBar = self.navigationController!.navigationBar + self.originalBarBgColor = navBar.barTintColor + self.originalBarTintColor = navBar.tintColor + self.originalBarStyle = navBar.barStyle + + navBar.barTintColor = self.view.backgroundColor + navBar.tintColor = .white + navBar.barStyle = .black + } + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + UIView.animate(withDuration: 0.15) { + let navBar = self.navigationController!.navigationBar + navBar.barTintColor = self.originalBarBgColor + navBar.tintColor = self.originalBarTintColor + navBar.barStyle = self.originalBarStyle + } + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setChartData() + } + + func setChartData() { + let mult: UInt32 = 80 + let min: UInt32 = 20 + let cnt = 5 + + let block: (Int) -> RadarChartDataEntry = { _ in return RadarChartDataEntry(value: Double(arc4random_uniform(mult) + min))} + let entries1 = (0.. String { + return activities[Int(value) % activities.count] + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/ScatterChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/ScatterChartViewController.swift new file mode 100644 index 0000000000..b3d6907da7 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/ScatterChartViewController.swift @@ -0,0 +1,126 @@ +// +// ScatterChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class ScatterChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: ScatterChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderY: UISlider! + @IBOutlet var sliderTextX: UITextField! + @IBOutlet var sliderTextY: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Scatter Chart" + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.dragEnabled = true + chartView.setScaleEnabled(true) + chartView.maxVisibleCount = 200 + chartView.pinchZoomEnabled = true + + let l = chartView.legend + l.horizontalAlignment = .right + l.verticalAlignment = .top + l.orientation = .vertical + l.drawInside = false + l.font = .systemFont(ofSize: 10, weight: .light) + l.xOffset = 5 + + let leftAxis = chartView.leftAxis + leftAxis.labelFont = .systemFont(ofSize: 10, weight: .light) + leftAxis.axisMinimum = 0 + + chartView.rightAxis.enabled = false + + + let xAxis = chartView.xAxis + xAxis.labelFont = .systemFont(ofSize: 10, weight: .light) + + sliderX.value = 45 + sliderY.value = 100 + slidersValueChanged(nil) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value + 1), range: UInt32(sliderY.value)) + } + + func setDataCount(_ count: Int, range: UInt32) { + let values1 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i), y: val) + } + let values2 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i) + 0.33, y: val) + } + let values3 = (0.. ChartDataEntry in + let val = Double(arc4random_uniform(range) + 3) + return ChartDataEntry(x: Double(i) + 0.66, y: val) + } + + + let set1 = ScatterChartDataSet(entries: values1, label: "DS 1") + set1.setScatterShape(.square) + set1.setColor(ChartColorTemplates.colorful()[0]) + set1.scatterShapeSize = 8 + + let set2 = ScatterChartDataSet(entries: values2, label: "DS 2") + set2.setScatterShape(.circle) + set2.scatterShapeHoleColor = ChartColorTemplates.colorful()[3] + set2.scatterShapeHoleRadius = 3.5 + set2.setColor(ChartColorTemplates.colorful()[1]) + set2.scatterShapeSize = 8 + + let set3 = ScatterChartDataSet(entries: values3, label: "DS 3") + set3.setScatterShape(.cross) + set3.setColor(ChartColorTemplates.colorful()[2]) + set3.scatterShapeSize = 8 + + let data = ScatterChartData(dataSets: [set1, set2, set3]) + data.setValueFont(.systemFont(ofSize: 7, weight: .light)) + + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + self.updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Demos/SinusBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/SinusBarChartViewController.swift new file mode 100644 index 0000000000..918aef215a --- /dev/null +++ b/ChartsDemo-iOS/Swift/Demos/SinusBarChartViewController.swift @@ -0,0 +1,110 @@ +// +// SinusBarChartViewController.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +#if canImport(UIKit) + import UIKit +#endif +import Charts + +class SinusBarChartViewController: DemoBaseViewController { + + @IBOutlet var chartView: BarChartView! + @IBOutlet var sliderX: UISlider! + @IBOutlet var sliderTextX: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + self.title = "Sinus Bar Chart" + self.options = [.toggleValues, + .toggleHighlight, + .animateX, + .animateY, + .animateXY, + .saveToGallery, + .togglePinchZoom, + .toggleAutoScaleMinMax, + .toggleData] + + chartView.delegate = self + + chartView.chartDescription?.enabled = false + + chartView.drawBarShadowEnabled = false + chartView.drawValueAboveBarEnabled = false + chartView.maxVisibleCount = 60 + + let xAxis = chartView.xAxis + xAxis.labelPosition = .bottom + xAxis.enabled = false + + let leftAxis = chartView.leftAxis + leftAxis.labelCount = 6 + leftAxis.axisMinimum = -2.5 + leftAxis.axisMaximum = 2.5 + leftAxis.granularityEnabled = true + leftAxis.granularity = 0.1 + + let rightAxis = chartView.rightAxis + rightAxis.labelCount = 6 + rightAxis.axisMinimum = -2.5 + rightAxis.axisMaximum = 2.5 + rightAxis.granularity = 0.1 + + let l = chartView.legend + l.horizontalAlignment = .left + l.verticalAlignment = .bottom + l.orientation = .horizontal + l.drawInside = false + l.form = .square + l.formSize = 9 + l.font = .systemFont(ofSize: 11) + l.xEntrySpace = 4 +// chartView.legend = l + + sliderX.value = 150 + slidersValueChanged(nil) + + chartView.animate(xAxisDuration: 2, yAxisDuration: 2) + } + + override func updateChartData() { + if self.shouldHideData { + chartView.data = nil + return + } + + self.setDataCount(Int(sliderX.value)) + } + + func setDataCount(_ count: Int) { + let entries = (0.. BarChartDataEntry in + let mult = range + 1 + let val1 = Double(arc4random_uniform(mult) + mult / 3) + let val2 = Double(arc4random_uniform(mult) + mult / 3) + let val3 = Double(arc4random_uniform(mult) + mult / 3) + + return BarChartDataEntry(x: Double(i), yValues: [val1, val2, val3], icon: #imageLiteral(resourceName: "icon")) + } + + let set = BarChartDataSet(entries: yVals, label: "Statistics Vienna 2014") + set.drawIconsEnabled = false + set.colors = [ChartColorTemplates.material()[0], ChartColorTemplates.material()[1], ChartColorTemplates.material()[2]] + set.stackLabels = ["Births", "Divorces", "Marriages"] + + let data = BarChartData(dataSet: set) + data.setValueFont(.systemFont(ofSize: 7, weight: .light)) + data.setValueFormatter(DefaultValueFormatter(formatter: formatter)) + data.setValueTextColor(.white) + + chartView.fitBars = true + chartView.data = data + } + + override func optionTapped(_ option: Option) { + super.handleOption(option, forChartView: chartView) + } + + @IBAction func slidersValueChanged(_ sender: Any?) { + sliderTextX.text = "\(Int(sliderX.value))" + sliderTextY.text = "\(Int(sliderY.value))" + + updateChartData() + } +} diff --git a/ChartsDemo-iOS/Swift/Formatters/DateValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/DateValueFormatter.swift new file mode 100644 index 0000000000..2962a6852a --- /dev/null +++ b/ChartsDemo-iOS/Swift/Formatters/DateValueFormatter.swift @@ -0,0 +1,23 @@ +// +// DateValueFormatter.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +import Foundation +import Charts + +public class DateValueFormatter: NSObject, IAxisValueFormatter { + private let dateFormatter = DateFormatter() + + override init() { + super.init() + dateFormatter.dateFormat = "dd MMM HH:mm" + } + + public func stringForValue(_ value: Double, axis: AxisBase?) -> String { + return dateFormatter.string(from: Date(timeIntervalSince1970: value)) + } +} diff --git a/ChartsDemo-iOS/Swift/Formatters/DayAxisValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/DayAxisValueFormatter.swift new file mode 100644 index 0000000000..245a25c83e --- /dev/null +++ b/ChartsDemo-iOS/Swift/Formatters/DayAxisValueFormatter.swift @@ -0,0 +1,109 @@ +// +// DayAxisValueFormatter.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +import Foundation +import Charts + +public class DayAxisValueFormatter: NSObject, IAxisValueFormatter { + weak var chart: BarLineChartViewBase? + let months = ["Jan", "Feb", "Mar", + "Apr", "May", "Jun", + "Jul", "Aug", "Sep", + "Oct", "Nov", "Dec"] + + init(chart: BarLineChartViewBase) { + self.chart = chart + } + + public func stringForValue(_ value: Double, axis: AxisBase?) -> String { + let days = Int(value) + let year = determineYear(forDays: days) + let month = determineMonth(forDayOfYear: days) + + let monthName = months[month % months.count] + let yearName = "\(year)" + + if let chart = chart, + chart.visibleXRange > 30 * 6 { + return monthName + yearName + } else { + let dayOfMonth = determineDayOfMonth(forDays: days, month: month + 12 * (year - 2016)) + var appendix: String + + switch dayOfMonth { + case 1, 21, 31: appendix = "st" + case 2, 22: appendix = "nd" + case 3, 23: appendix = "rd" + default: appendix = "th" + } + + return dayOfMonth == 0 ? "" : String(format: "%d\(appendix) \(monthName)", dayOfMonth) + } + } + + private func days(forMonth month: Int, year: Int) -> Int { + // month is 0-based + switch month { + case 1: + var is29Feb = false + if year < 1582 { + is29Feb = (year < 1 ? year + 1 : year) % 4 == 0 + } else if year > 1582 { + is29Feb = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) + } + + return is29Feb ? 29 : 28 + + case 3, 5, 8, 10: + return 30 + + default: + return 31 + } + } + + private func determineMonth(forDayOfYear dayOfYear: Int) -> Int { + var month = -1 + var days = 0 + + while days < dayOfYear { + month += 1 + if month >= 12 { + month = 0 + } + + let year = determineYear(forDays: days) + days += self.days(forMonth: month, year: year) + } + + return max(month, 0) + } + + private func determineDayOfMonth(forDays days: Int, month: Int) -> Int { + var count = 0 + var daysForMonth = 0 + + while count < month { + let year = determineYear(forDays: days) + daysForMonth += self.days(forMonth: count % 12, year: year) + count += 1 + } + + return days - daysForMonth + } + + private func determineYear(forDays days: Int) -> Int { + switch days { + case ...366: return 2016 + case 367...730: return 2017 + case 731...1094: return 2018 + case 1095...1458: return 2019 + default: return 2020 + } + } +} diff --git a/ChartsDemo-iOS/Swift/Formatters/IntAxisValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/IntAxisValueFormatter.swift new file mode 100644 index 0000000000..bd3062a190 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Formatters/IntAxisValueFormatter.swift @@ -0,0 +1,16 @@ +// +// IntAxisValueFormatter.swift +// ChartsDemo-iOS +// +// Created by Jacob Christie on 2017-07-09. +// Copyright © 2017 jc. All rights reserved. +// + +import Foundation +import Charts + +public class IntAxisValueFormatter: NSObject, IAxisValueFormatter { + public func stringForValue(_ value: Double, axis: AxisBase?) -> String { + return "\(Int(value))" + } +} diff --git a/ChartsDemo-iOS/Swift/Formatters/LargeValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/LargeValueFormatter.swift new file mode 100644 index 0000000000..c95ca034a6 --- /dev/null +++ b/ChartsDemo-iOS/Swift/Formatters/LargeValueFormatter.swift @@ -0,0 +1,58 @@ +// +// LargeValueFormatter.swift +// ChartsDemo +// Copyright © 2016 dcg. All rights reserved. +// + +import Foundation +import Charts + +private let MAX_LENGTH = 5 + +@objc protocol Testing123 { } + +public class LargeValueFormatter: NSObject, IValueFormatter, IAxisValueFormatter { + + /// Suffix to be appended after the values. + /// + /// **default**: suffix: ["", "k", "m", "b", "t"] + public var suffix = ["", "k", "m", "b", "t"] + + /// An appendix text to be added at the end of the formatted value. + public var appendix: String? + + public init(appendix: String? = nil) { + self.appendix = appendix + } + + fileprivate func format(value: Double) -> String { + var sig = value + var length = 0 + let maxLength = suffix.count - 1 + + while sig >= 1000.0 && length < maxLength { + sig /= 1000.0 + length += 1 + } + + var r = String(format: "%2.f", sig) + suffix[length] + + if let appendix = appendix { + r += appendix + } + + return r + } + + public func stringForValue(_ value: Double, axis: AxisBase?) -> String { + return format(value: value) + } + + public func stringForValue( + _ value: Double, + entry: ChartDataEntry, + dataSetIndex: Int, + viewPortHandler: ViewPortHandler?) -> String { + return format(value: value) + } +} diff --git a/ChartsDemo/Classes/DemoListViewController.xib b/ChartsDemo-iOS/XIBs/DemoListViewController.xib similarity index 75% rename from ChartsDemo/Classes/DemoListViewController.xib rename to ChartsDemo-iOS/XIBs/DemoListViewController.xib index 70df94ae66..651bae9f4c 100644 --- a/ChartsDemo/Classes/DemoListViewController.xib +++ b/ChartsDemo-iOS/XIBs/DemoListViewController.xib @@ -1,12 +1,15 @@ - - + + + + + - + - + @@ -18,6 +21,7 @@ + @@ -27,11 +31,12 @@ - + + diff --git a/ChartsDemo/Classes/Demos/AnotherBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/AnotherBarChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/AnotherBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/AnotherBarChartViewController.xib index 546a6bd904..571312c92c 100644 --- a/ChartsDemo/Classes/Demos/AnotherBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/AnotherBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/BarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/BarChartViewController.xib similarity index 77% rename from ChartsDemo/Classes/Demos/BarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/BarChartViewController.xib index 2098f36e87..85dbdc8371 100644 --- a/ChartsDemo/Classes/Demos/BarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/BarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/BubbleChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/BubbleChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/BubbleChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/BubbleChartViewController.xib index 5883ff604f..03af886339 100644 --- a/ChartsDemo/Classes/Demos/BubbleChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/BubbleChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/CandleStickChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CandleStickChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/CandleStickChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CandleStickChartViewController.xib index 2f814db531..460c052371 100644 --- a/ChartsDemo/Classes/Demos/CandleStickChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/CandleStickChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/ColoredLineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/ColoredLineChartViewController.xib similarity index 67% rename from ChartsDemo/Classes/Demos/ColoredLineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/ColoredLineChartViewController.xib index 7f92d45b88..ef099b9fd9 100644 --- a/ChartsDemo/Classes/Demos/ColoredLineChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/ColoredLineChartViewController.xib @@ -1,18 +1,21 @@ - - + + + + + - + - + - - - - + + + + @@ -21,37 +24,42 @@ + + + + - + - - - + + + - - - - - + + + + + + diff --git a/ChartsDemo/Classes/Demos/CombinedChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CombinedChartViewController.xib similarity index 70% rename from ChartsDemo/Classes/Demos/CombinedChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CombinedChartViewController.xib index 54477530db..82fe07e540 100644 --- a/ChartsDemo/Classes/Demos/CombinedChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/CombinedChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -18,6 +26,7 @@ + - - + + - - + + + diff --git a/ChartsDemo/Classes/Demos/CubicLineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CubicLineChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/CubicLineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CubicLineChartViewController.xib index a991036be4..007e470e21 100644 --- a/ChartsDemo/Classes/Demos/CubicLineChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/CubicLineChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/HalfPieChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/HalfPieChartViewController.xib similarity index 69% rename from ChartsDemo/Classes/Demos/HalfPieChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/HalfPieChartViewController.xib index 29922a188a..cdcf1ffe65 100644 --- a/ChartsDemo/Classes/Demos/HalfPieChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/HalfPieChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -18,6 +26,7 @@ + - + - - - + + + + diff --git a/ChartsDemo/Classes/Demos/HorizontalBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/HorizontalBarChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/HorizontalBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/HorizontalBarChartViewController.xib index c2eca08e9b..7ea8e71202 100644 --- a/ChartsDemo/Classes/Demos/HorizontalBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/HorizontalBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/LineChart1ViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChart1ViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/LineChart1ViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChart1ViewController.xib index 84be1eb5de..9902b5b27d 100644 --- a/ChartsDemo/Classes/Demos/LineChart1ViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/LineChart1ViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/LineChart2ViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChart2ViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/LineChart2ViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChart2ViewController.xib index c37e4dd5d0..c1c730e97b 100644 --- a/ChartsDemo/Classes/Demos/LineChart2ViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/LineChart2ViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/LineChartFilledViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChartFilledViewController.xib similarity index 77% rename from ChartsDemo/Classes/Demos/LineChartFilledViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChartFilledViewController.xib index 116668ae42..62bf7015e6 100644 --- a/ChartsDemo/Classes/Demos/LineChartFilledViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/LineChartFilledViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,19 +30,23 @@ + + + + @@ -43,6 +55,7 @@ + @@ -54,20 +67,21 @@ - - + + - - + + - + - + + diff --git a/ChartsDemo/Classes/Demos/LineChartTimeViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChartTimeViewController.xib similarity index 77% rename from ChartsDemo/Classes/Demos/LineChartTimeViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChartTimeViewController.xib index 16b53d9d1b..d13233af3f 100644 --- a/ChartsDemo/Classes/Demos/LineChartTimeViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/LineChartTimeViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -20,6 +28,7 @@ + + @@ -41,6 +52,7 @@ + @@ -49,17 +61,18 @@ - + - + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/MultipleBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/MultipleBarChartViewController.xib similarity index 85% rename from ChartsDemo/Classes/Demos/MultipleBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/MultipleBarChartViewController.xib index 99fd12c09a..9ee6745abc 100644 --- a/ChartsDemo/Classes/Demos/MultipleBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/MultipleBarChartViewController.xib @@ -1,15 +1,20 @@ - + - + + + + HelveticaNeue-Light + + - + @@ -71,23 +76,24 @@ - + - + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/MultipleLinesChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/MultipleLinesChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/MultipleLinesChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/MultipleLinesChartViewController.xib index 664ed9881c..c9595f1dc4 100644 --- a/ChartsDemo/Classes/Demos/MultipleLinesChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/MultipleLinesChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/NegativeStackedBarChartViewController.xib similarity index 70% rename from ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/NegativeStackedBarChartViewController.xib index a2ce947ba2..ac24e0d3c9 100644 --- a/ChartsDemo/Classes/Demos/NegativeStackedBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/NegativeStackedBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -18,6 +26,7 @@ + - + - - - + + + + diff --git a/ChartsDemo/Classes/Demos/PieChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PieChartViewController.xib similarity index 77% rename from ChartsDemo/Classes/Demos/PieChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PieChartViewController.xib index 9561343870..39cce57ef3 100644 --- a/ChartsDemo/Classes/Demos/PieChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/PieChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + @@ -50,6 +62,7 @@ + @@ -58,28 +71,30 @@ + - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/PiePolylineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PiePolylineChartViewController.xib similarity index 80% rename from ChartsDemo/Classes/Demos/PiePolylineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PiePolylineChartViewController.xib index 9ef36e8e63..c0bc4dbb86 100644 --- a/ChartsDemo/Classes/Demos/PiePolylineChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/PiePolylineChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + @@ -50,6 +62,7 @@ + @@ -58,6 +71,7 @@ + @@ -72,23 +86,24 @@ - + - - + + - + - + - - + + + diff --git a/ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PositiveNegativeBarChartViewController.xib similarity index 70% rename from ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PositiveNegativeBarChartViewController.xib index 311a874345..365f7f6337 100644 --- a/ChartsDemo/Classes/Demos/PositiveNegativeBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/PositiveNegativeBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -18,6 +26,7 @@ + - + - - - + + + + diff --git a/ChartsDemo/Classes/Demos/RadarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/RadarChartViewController.xib similarity index 74% rename from ChartsDemo/Classes/Demos/RadarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/RadarChartViewController.xib index fb3209f598..3e45cbe67d 100644 --- a/ChartsDemo/Classes/Demos/RadarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/RadarChartViewController.xib @@ -1,13 +1,22 @@ - - + + + + + - + + + + + HelveticaNeue-Light + + - + @@ -19,6 +28,7 @@ + - - + + - - + + + diff --git a/ChartsDemo/Classes/RealmDemosViewController.xib b/ChartsDemo-iOS/XIBs/Demos/RealmDemosViewController.xib similarity index 79% rename from ChartsDemo/Classes/RealmDemosViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/RealmDemosViewController.xib index 0d3788dd13..9e6861347a 100644 --- a/ChartsDemo/Classes/RealmDemosViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/RealmDemosViewController.xib @@ -1,15 +1,20 @@ - + - + + + + HelveticaNeue-Light + + - + @@ -34,9 +39,10 @@ Please go to https://github.com/danielgindi/ChartsRealm and follow the instructi - - + + + diff --git a/ChartsDemo/Classes/Demos/ScatterChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/ScatterChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/ScatterChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/ScatterChartViewController.xib index 8fb1ad6909..926e15c0df 100644 --- a/ChartsDemo/Classes/Demos/ScatterChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/ScatterChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Demos/SinusBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/SinusBarChartViewController.xib similarity index 77% rename from ChartsDemo/Classes/Demos/SinusBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/SinusBarChartViewController.xib index 27fd60b479..e2c84ecf6f 100644 --- a/ChartsDemo/Classes/Demos/SinusBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/SinusBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -20,6 +28,7 @@ + + @@ -43,23 +54,25 @@ + - - + + - + - - + + + diff --git a/ChartsDemo/Classes/Demos/StackedBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/StackedBarChartViewController.xib similarity index 78% rename from ChartsDemo/Classes/Demos/StackedBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/StackedBarChartViewController.xib index c61b6170ca..cb9e5c20e2 100644 --- a/ChartsDemo/Classes/Demos/StackedBarChartViewController.xib +++ b/ChartsDemo-iOS/XIBs/Demos/StackedBarChartViewController.xib @@ -1,12 +1,20 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + @@ -22,6 +30,7 @@ + + + + @@ -53,6 +66,7 @@ + @@ -64,22 +78,23 @@ - - + + - - + + - - + + - + + diff --git a/ChartsDemo/Classes/Components/RadarMarkerView.xib b/ChartsDemo-iOS/XIBs/RadarMarkerView.xib similarity index 80% rename from ChartsDemo/Classes/Components/RadarMarkerView.xib rename to ChartsDemo-iOS/XIBs/RadarMarkerView.xib index a515cc9ca9..8ffdb62c0d 100644 --- a/ChartsDemo/Classes/Components/RadarMarkerView.xib +++ b/ChartsDemo-iOS/XIBs/RadarMarkerView.xib @@ -1,22 +1,31 @@ - - + + + + + - + + + + HelveticaNeue-Light + + - + - +