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