I am trying to create a nice gradient fill as seen in the demos on the ios-charts page. However, I cannot figure this out in swift vs obj-c. Here is the obj-c code:
NSArray *gradientColors = @[
(id)[ChartColorTemplates colorFromString:@"#00ff0000"].CGColor,
(id)[ChartColorTemplates colorFromString:@"#ffff0000"].CGColor
];
CGGradientRef gradient = CGGradientCreateWithColors(nil, (CFArrayRef)gradientColors, nil);
set1.fillAlpha = 1.f;
set1.fill = [ChartFill fillWithLinearGradient:gradient angle:90.f];
Now here is my version of that in swift:
let gradColors = [UIColor.cyanColor().CGColor, UIColor.init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)]
let colorLocations:[CGFloat] = [0.0, 1.0]
let gradient = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(), gradColors, colorLocations)
What I am missing is the : Chart Fill fillWithLinearGradient
I can't find the fillWithLinearGradient in the pod anywhere so I am a bit confused.
Thanks in advance for any help! Rob
Make sure to use the latest version of ios-charts. If you use CocoaPods to install ios-charts change this:
pod 'Charts'
to this
I believe this is the code that you are looking for. You should be able to use the same
ChartFill
class in Swift to setset1.fill
.For swift4
This works perfectly (Swift 3.1 and ios-charts 3.0.1)
Result