ios - 饼图文本显示不正确?
<p><p>我编写了以下代码,但饼图显示 <a href="/image/YxVht.png" rel="noreferrer noopener nofollow">like this</a> </p>
<pre><code>let months = ["Jan", "Feb", "Apr", "Jun"]
let unitsSold =
setChart(dataPoints: months, values: unitsSold)
func setChart(dataPoints: , values: ) {
let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
let frame = CGRect(x: 10, y: 10, width: width, height: height/1.5)
let chart = PieChartView(frame: frame)
var dataEntries: = []
for i in 0..<dataPoints.count {
let dataEntry = ChartDataEntry(x: Double(values), y: Double(i))
dataEntries.append(dataEntry)
}
let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold")
var colors: = []
for _ in 0..<dataPoints.count {
let red = Double(arc4random_uniform(256))
let green = Double(arc4random_uniform(256))
let blue = Double(arc4random_uniform(256))
let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
colors.append(color)
}
pieChartDataSet.colors = colors
let data = PieChartData(dataSet: pieChartDataSet)
piecharView.data = data
piecharView.backgroundColor = UIColor.white
piecharView.noDataText = "No Data Available"
piecharView.isUserInteractionEnabled = true
let d = Description()
d.text = ""
piecharView.chartDescription = d
piecharView.centerText = "HEALTH SCORE"
piecharView.holeRadiusPercent = 0.5
piecharView.transparentCircleColor = UIColor.clear
piecharView.usePercentValuesEnabled = true
piecharView.drawEntryLabelsEnabled = true
pieChartDataSet.colors = colors
}
</code></pre>
<p>但我想要这样
<a href="/image/tkcGx.png" rel="noreferrer noopener nofollow">pie Chart</a>
我启用了百分比,但仍然没有显示我想要的饼图。</p>
<p> <a href="/image/GLv3x.png" rel="noreferrer noopener nofollow">Now it is showing like this</a> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p><code>let data = PieChartData(dataSet: pieChartDataSet)</code></p>这行之后
<p>输入这段代码</p>
<pre><code> let pFormatter = NumberFormatter()
pFormatter.numberStyle = .percent
pFormatter.maximumFractionDigits = 1
pFormatter.multiplier = 1
pFormatter.percentSymbol = " %"
data.setValueFormatter(DefaultValueFormatter(formatter: pFormatter))
data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 11)!)
data.setValueTextColor(.white)
</code></pre>
<p>然后</p>
<pre><code> piecharView.data = data
</code></pre>
<p>和</p>
<pre><code> piecharView.setNeedDisplay()
</code></pre>
<p><strong>编辑</strong></p>
<p><strong>第 1 步</strong>:转到 Storybaord 并为 pieChartView 设置适当的约束 <br/>
<strong>第 2 步</strong>:在 Storyboard中选择 PieCharView 并从右侧面板中将其设置为 <code>PieChartView</code> 类。 <br/>
<strong>第 3 步</strong>:移除旧的 IBOutlet 并附加新的 IBoutlet 应该如下所示</p>
<pre><code>@IBOutlet weak var pieChartView: PieChartView!
</code></pre>
<p>在你的类中添加这个方法</p>
<pre><code>func setCharts(dataPoints:, values : ) {
var dataEntries = ()
for i in 0..<dataPoints.count {
let dataEntry =PieChartDataEntry(value: values, label: dataPoints)
dataEntries.append(dataEntry)
}
let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Unit Sold")
pieChartDataSet.sliceSpace = 3
pieChartDataSet.selectionShift = 5
var colors: = []
for _ in 0..<dataPoints.count {
let red = Double(arc4random_uniform(256))
let green = Double(arc4random_uniform(256))
let blue = Double(arc4random_uniform(256))
let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
colors.append(color)
}
pieChartDataSet.colors = colors
let pieChartData = PieChartData(dataSet: pieChartDataSet)
let pFormatter = NumberFormatter()
pFormatter.numberStyle = .percent
pFormatter.maximumFractionDigits = 1
pFormatter.multiplier = 1
pFormatter.percentSymbol = " %"
pieChartData.setValueFormatter(DefaultValueFormatter(formatter: pFormatter))
pieChartData.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 11)!)
pieChartData.setValueTextColor(.white)
self.pieChartView.data = pieChartData
self.pieChartView.setNeedsDisplay()
self.pieChartView.animate(xAxisDuration: 2.0,easingOption: .easeOutElastic)
}
</code></pre>
<p>并从 <code>viewDidLoad</code> 粘贴以下</p>
<pre><code> let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
let unitsSold =
setCharts(dataPoints: months, values: unitsSold)
</code></pre>
<p><strong>输出:</strong></p>
<p> <a href="/image/AET4V.png" rel="noreferrer noopener nofollow"><img src="/image/AET4V.png" alt="enter image description here"/></a> </p>
<p><strong>编辑 2</strong></p>
<pre><code> var attrString: NSMutableAttributedString?
let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineBreakMode = NSLineBreakMode.byWordWrapping
paragraphStyle.alignment = .center
attrString = NSMutableAttributedString(string: "HEALTH SCORE HEALTH SCORE HEALTH SCORE HEALTH SCORE")
attrString?.setAttributes([
NSAttributedStringKey.foregroundColor: NSUIColor.black,
NSAttributedStringKey.font: NSUIFont.systemFont(ofSize: 12.0),
NSAttributedStringKey.paragraphStyle: paragraphStyle
], range: NSMakeRange(0, attrString!.length))
pieChartView.centerAttributedText =attrString
</code></pre>
<p>希望对你有帮助</p></p>
<p style="font-size: 20px;">关于ios - 饼图文本显示不正确?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/49357373/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/49357373/
</a>
</p>
页:
[1]