我试图以编程方式显示饼图,但我无法做到这一点. 这是密码.

// Create pie chart view
let pieChart: PieChartView = {
    let pieChart = PieChartView()
    pieChart.translatesAutoresizingMaskIntoConstraints = false
    pieChart.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    return pieChart
}()

setPieChartData(chartView: pieChart, labels: labels, values: values)
        
setupViews() // Here I am adding the piechart view as follows
view.addSubview(pieChart)

NSLayoutConstraint.activate([
    pieChart.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 180),
    pieChart.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20)])
        
pieChart.setNeedsDisplay()


func setPieChartData(chartView: PieChartView, labels: [String], values: [Double]) {
    var entries: [PieChartDataEntry] = []
    for i in 0..<labels.count {
        entries.append(PieChartDataEntry(value: values[i], label: labels[i]))
    }
    let dataSet = PieChartDataSet(entries: entries, label: "Pie Chart")
    dataSet.colors = [.orange, .red]
//    dataSet.drawValuesEnabled = true // Hide values on chart
//    
//    // Set additional properties for donut chart
//    dataSet.drawIconsEnabled = true
//    dataSet.drawValuesEnabled = true
//    dataSet.sliceSpace = 2.0 // Adjust space between slices to create donut effect
            
    let data = PieChartData(dataSet: dataSet)
    chartView.data = data
}

我错过了什么?

我试着添加背景色并改变了约束条件,但它不起作用.

推荐答案

当你设置pieChart.translatesAutoresizingMaskIntoConstraints = falsepieChart.autoresizingMask = [.flexibleWidth, .flexibleHeight]将是无用的.你需要自己设置约束,比如:

pieChart.widthAnchor.constraint(equalTo: view.widthAnchor)
pieChart.heightAnchor.constraint(equalTo: view.heightAnchor)

但根据你的topAnchor leadingAnchor,我猜你需要trailingAnchor bottomAnchor:&&

NSLayoutConstraint.activate([
  pieChart.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 180),
  pieChart.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
  pieChart.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
  pieChart.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
])

Ios相关问答推荐

iOS中的分段拾取器—手柄点击已 Select 的项目

在SwiftUI中为圆角矩形创建均匀分布的点轮廓

在滚动视图中固定页眉,但在页眉上方嵌入元素

有没有办法将滚动视图RTL(阿拉伯语)与Ltr动画一起使用?

flutter中实现自定义底部导航栏

如何删除点击时按钮的不透明动画?

为什么IOS多行文本输入在React原生纸张对话框中无法正常工作?

如何在集合视图中创建装饰视图?

在Xcode 15中为具有@Binding的视图创建SwiftUI #预览的方法

表视图(SwiftUI)中的多列?

更新 flutter 和 xcode 后 Xcode 14.3 中缺少文件 (libarclite_iphoneos.a)

在 SwiftUI 中放置全局 NavigationPath 的位置

SwiftUI 动画:为什么容器视图在移动?我很难理解这种行为

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

无法为 Flutter 项目构建 ipa [CocoaPods 找不到 pod "GoogleAppMeasurement" 的兼容版本:]

SwiftUI:添加核心数据项时更新选项卡栏徽章

如何找出坐标之间的距离?

关闭所有打开的视图控制器的单个函数

无法将NSTaggedPointerString类型的值转换为NSNumber

iOS 应用程序中的手动语言 Select (iPhone 和 iPad)