jbchartview中的渐变
Gradient in jbchartview
正在尝试将条形图设置为渐变色,但找不到有关如何执行此操作的任何文档。看起来这是正确的功能。只需要有关在括号中键入内容的帮助。也不关心什么颜色。
func barGradientForBarChartView(barChartView: JBBarChartView!) -> CAGradientLayer! {
}
感谢您的帮助!
设法解决了这个问题。我想我会 post 代码以防其他人需要。请记住,它涵盖了所有的酒吧。您不能像实心条那样按索引将它们分开。
func barGradientForBarChartView(barChartView: JBBarChartView) -> CAGradientLayer {
let topColor = UIColor.orangeColor()
let bottomColor = UIColor.blueColor()
let gradientColors: [CGColor] = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations: [Float] = [0.0, 1.0]
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.colors = gradientColors
gradientLayer.locations = gradientLocations
return gradientLayer
}
仅供参考,header 包含必要的文档。同样,README 也是一个很好的起点。
/**
* If you already implement barChartView:barViewAtIndex: delegate - this method has no effect.
* If a custom UIView isn't supplied and barChartView:colorForBarViewAtIndex: isn't implemented, then
* a gradient layer may be supplied to be used across all bars within the chart.
*
* Default: black color.
*
* @param barChartView The bar chart object requesting this information.
*
* @return The gradient layer to be used as a mask over all bars within the chart.
*/
最后,您可以通过使用 barViewAtIndex: 并返回带有渐变的自定义视图,在每个条的基础上创建渐变。
样本:
- (UIView *)barChartView:(JBBarChartView *)barChartView barViewAtIndex:(NSUInteger)index
{
UIView *customBarView = [[UIView alloc] init];
CAGradientLayer *gradient = [CAGradientLayer new];
gradient.startPoint = CGPointMake(0.0, 0.0);
gradient.endPoint = CGPointMake(1.0, 0.0);
gradient.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor greenColor].CGColor];
[customBarView.layer insertSublayer:gradient atIndex:0];
return customBarView;
}
当然,customView 应该是 UIView 的子类,您应该实现 layoutSubviews 以正确设置渐变的框架,但您明白了。
正在尝试将条形图设置为渐变色,但找不到有关如何执行此操作的任何文档。看起来这是正确的功能。只需要有关在括号中键入内容的帮助。也不关心什么颜色。
func barGradientForBarChartView(barChartView: JBBarChartView!) -> CAGradientLayer! {
}
感谢您的帮助!
设法解决了这个问题。我想我会 post 代码以防其他人需要。请记住,它涵盖了所有的酒吧。您不能像实心条那样按索引将它们分开。
func barGradientForBarChartView(barChartView: JBBarChartView) -> CAGradientLayer {
let topColor = UIColor.orangeColor()
let bottomColor = UIColor.blueColor()
let gradientColors: [CGColor] = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations: [Float] = [0.0, 1.0]
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.colors = gradientColors
gradientLayer.locations = gradientLocations
return gradientLayer
}
仅供参考,header 包含必要的文档。同样,README 也是一个很好的起点。
/**
* If you already implement barChartView:barViewAtIndex: delegate - this method has no effect.
* If a custom UIView isn't supplied and barChartView:colorForBarViewAtIndex: isn't implemented, then
* a gradient layer may be supplied to be used across all bars within the chart.
*
* Default: black color.
*
* @param barChartView The bar chart object requesting this information.
*
* @return The gradient layer to be used as a mask over all bars within the chart.
*/
最后,您可以通过使用 barViewAtIndex: 并返回带有渐变的自定义视图,在每个条的基础上创建渐变。
样本:
- (UIView *)barChartView:(JBBarChartView *)barChartView barViewAtIndex:(NSUInteger)index
{
UIView *customBarView = [[UIView alloc] init];
CAGradientLayer *gradient = [CAGradientLayer new];
gradient.startPoint = CGPointMake(0.0, 0.0);
gradient.endPoint = CGPointMake(1.0, 0.0);
gradient.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor greenColor].CGColor];
[customBarView.layer insertSublayer:gradient atIndex:0];
return customBarView;
}
当然,customView 应该是 UIView 的子类,您应该实现 layoutSubviews 以正确设置渐变的框架,但您明白了。