swift - 在图表库 Swift 中截断 PieChart 的值标签
问题描述
`类 PieChartViewController: DemoBaseViewController {
@IBOutlet var chartView: PieChartView!
@IBOutlet var sliderX: UISlider!
@IBOutlet var sliderY: UISlider!
@IBOutlet var sliderTextX: UITextField!
@IBOutlet var sliderTextY: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Pie Chart"
self.setup(pieChartView: chartView)
chartView.delegate = self
chartView.holeRadiusPercent = 0.8
chartView.usePercentValuesEnabled = true
chartView.transparentCircleRadiusPercent = 0
chartView.drawHoleEnabled = true
chartView.transparentCircleColor = UIColor.white.withAlphaComponent(1)
chartView.drawCenterTextEnabled = true
chartView.centerText = nil
let l = chartView.legend
l.enabled = false
//MARK: Entry label Styling (Value Label Above PieChart)
chartView.entryLabelColor = .black
chartView.entryLabelFont = .systemFont(ofSize: 14, weight: .medium)
//MARK: Setting Offset
let frameOffset = chartView.frame.width * 0.12
chartView.setExtraOffsets(left: frameOffset, top: frameOffset, right: frameOffset, bottom: frameOffset)
self.slidersValueChanged(nil)
}
override func updateChartData() {
if self.shouldHideData {
chartView.data = nil
return
}
self.setDataCount()
}
func setDataCount() {
let entry1 = PieChartDataEntry(value: 22, label: "Apple.It is a fruit")
let entry2 = PieChartDataEntry(value: 33, label: "Zebra.It is an animal")
let entry3 = PieChartDataEntry(value: 31, label: "Eagle.It is a bird")
let entry4 = PieChartDataEntry(value: 14, label: "Asia.It is a continent")
var enteries: [PieChartDataEntry] = []
enteries.append(entry1)
enteries.append(entry2)
enteries.append(entry3)
enteries.append(entry4)
let set = PieChartDataSet(entries: enteries, label: "Knowledge")
set.drawIconsEnabled = false
set.sliceSpace = 0
set.selectionShift = 0
set.colors = ChartColorTemplates.vordiplom()
+ ChartColorTemplates.joyful()
+ ChartColorTemplates.colorful()
+ ChartColorTemplates.liberty()
+ ChartColorTemplates.pastel()
+ [UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)]
// MARK: Setting Value Label
set.valueLinePart1OffsetPercentage = 0.20
set.valueLinePart1Length = 0.4
set.valueLinePart2Length = 0.4
set.valueLineColor = .black
set.valueTextColor = .black
set.xValuePosition = .outsideSlice
set.yValuePosition = .outsideSlice
let data = PieChartData(dataSet: set)
data.setValueFont(.systemFont(ofSize: 13, weight: .medium))
data.setValueTextColor(.black)
chartView.data = data
chartView.highlightValues(nil)
}
override func optionTapped(_ option: Option) {
chartView.setNeedsDisplay()
}
// MARK: - Actions
@IBAction func slidersValueChanged(_ sender: Any?) {
self.updateChartData()
}
}`
如何截断或自动换行饼图中的值标签?
- 我在 iOS 中使用图表库。
如果我在 iPhone 5s 或 iPhone SE 等较小的设备中添加额外的偏移量,饼图会缩小。
如果文本很大,则文本会超出屏幕,如您在上传的图像中所见。
我找不到任何属性(自动换行)来处理大文本问题。
解决方案
推荐阅读
- ms-access - 运行时错误“2471”作为查询参数输入的表达式产生了这个错误:“[invoicetopid]”
- java - JSR 验证不适用于自定义验证器 Spring Boot
- python - 如何在 numpy 二维数组中获取非空元素的位置?
- git - 由于 .gitignore 未跟踪,无法 git pull
- c# - 如何将字符串列表连接在一起,每个值之间用逗号?
- html - 如何使用CSS选择所有不包含块元素的元素
- c++ - 这个的向量语法是什么
- c - 如何在文本文件为空时停止从文本文件中读取字符串
- networking - 从移动设备访问 url 时 netsh 端口转发不起作用
- firebase - 如何在没有 Web 令牌的情况下使用 Firebase 身份验证