Размер выбранного сегмента контролируется свойством selectionShift
объекта dataSet.Значение 0
означает, что элемент не будет изменен при его выборе.
Возможно изменить это значение с течением времени, контролируемое встроенной функцией аниматора.
Комувызвать аниматор при выборе сегмента круговой диаграммы, реализовать функцию chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight)
делегата представления диаграммы.
Пример:
override func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {
let animator = Animator()
animator.updateBlock = {
// Usually the phase is a value between 0.0 and 1.0
// Multiply it so you get the final phaseShift you want
let phaseShift = 10 * animator.phaseX
let dataSet = chartView.data?.dataSets.first as? PieChartDataSet
// Set the selectionShift property to actually change the selection over time
dataSet?.selectionShift = CGFloat(phaseShift)
// In order to see the animation, trigger a redraw every time the selectionShift property was changed
chartView.setNeedsDisplay()
}
// Start the animation by triggering the animate function with any timing function you like
animator.animate(xAxisDuration: 0.3, easingOption: ChartEasingOption.easeInCubic)
}