Skip to main content

Overview

Drawings in DXCharts for iOS

It is recommended to read drawings module article first, because all core functionality is described there.

Drawings in ChartScreen are already wired up automatically, there is no need to add them as a module.

DXCharts-iOS provides a native Swift API to work with drawings.

Setup custom drawing settings for ChartScreen module

You can setup custom drawing settings for ChartScreen module by providing a custom DrawingsProvider instance. For do it provide your own implementation of the DrawingsProvider protocol and pass it to the DataProvider.

public protocol DrawingsProvider: AnyObject {
/// Default drawing templates by type.
///
/// Use this property to set up default drawing configurations and drawing lists in ChartScreen.
///
/// - Note: To get default configuration for some drawing, use Configuration in it like `TrendLineDrawing.Configuration.default`
///
/// Implementations may return `nil` if no defaults are provided, which will use default configurations (`Drawing.defaultDrawingConfigs`).
var defaultDrawingConfigs: [DrawingType : DrawingConfiguration]? { get }
}

Example of DrawingsProvider implementation

import UIKit
import DXChart
final class CustomDrawingsProvider: DrawingsProvider {
static var customTrendLineConfig: DrawingConfiguration = {
var config = TrendLineDrawing.Configuration.default
config.line.color = ChartColor(UIColor.purple)
return config
}()
var defaultDrawingConfigs: [DrawingType : DrawingConfiguration]? = {
var configs = Drawing.defaultDrawingConfigs
configs[.trendLine] = customTrendLineConfig
return configs
}()
}

Default drawing implementations

// Trend lines
TrendLineDrawing
InfoLineDrawing
HorizontalRayDrawing
ArrowDrawing
RayDrawing
ExtendedLineDrawing
PriceLineDrawing
TimeLineDrawing
TrendChannelDrawing
RegressionTrendDrawing
// Fibonacci and Gann
PitchforkDrawing
FibonacciRaysDrawing
FibonacciArcsDrawing
FibonacciCirclesDrawing
FibonacciRetracementsDrawing
FibonacciExtensionDrawing
FibonacciChannelDrawing
FibonacciTimezoneDrawing
FibonacciTimeExtensionDrawing
FibonacciTimeRatiosDrawing
GannSquareDrawing
GannBoxDrawing
GannFanDrawing
FibonacciSpiralDrawing
// Markups
HighlighterDrawing
BrushDrawing
PathDrawing
CurveDrawing
ArcDrawing
ArrowUpDrawing
ArrowDownDrawing
OvalDrawing
RectangleDrawing
CycleBracketsDrawing
// Elliott
ElliottImpulseDrawing
ElliottCorrectionDrawing
// Ranges
PriceRangeDrawing
DateRangeDrawing
DateAndPriceRangeDrawing
// Annotations
PriceLabelDrawing
CalloutDrawing
IconDrawing
TextDrawing