【问题标题】:iOS-Charts: Set UIImageViews in accordance with PieChart's Pie positions?iOS-Charts:根据 PieChart 的 Pie 位置设置 UIImageViews?
【发布时间】:2015-06-10 10:10:50
【问题描述】:

我目前正在使用 iOS-Charts (https://github.com/danielgindi/ios-charts) 来显示饼图。我让它工作了,可以突出显示它等等。但我需要在呈现的这些馅饼旁边放置图标。所以我想在饼图之外放置一个UIImageView,但在每个相应饼图的“中间”。检查图像以获得澄清。有没有一种简单的方法可以做到这一点?当然,这也需要是动态的,所以我不能只将它们放在情节提要中。

我可以得到每个饼包含多少个圆,以度数或百分比表示,但我不知道如何使用它来获取放置UIImageView 的位置。有什么建议吗?

编辑:忘记图片了

【问题讨论】:

    标签: ios swift pie-chart ios-charts


    【解决方案1】:
    let FDEG2RAD = CGFloat(M_PI / 180.0)
    var drawAngles = chart.drawAngles
    var absoluteAngles = chart.absoluteAngles
    var animator = chart.animator
    var center = chart.centerCircleBox
    var r: CGFloat = YOUR_DRAWING_RADIUS_HERE
    
    for (var i = 0; i < absoluteAngles.count; i++)
    {
      var offset =  drawAngles[i] / 2.0
      var x = (r * cos(((rotationAngle + absoluteAngles[i] - offset) * animator.phaseY) * FDEG2RAD) + center.x)
      var y = (r * sin(((rotationAngle + absoluteAngles[i] - offset) * animator.phaseY) * FDEG2RAD) + center.y)
    
      // Put whatever you want now on the x/y
    }
    

    【讨论】:

    • 我没有测试过这段代码,但看起来我会相信你的话,因为你是 ios-charts 的开发者。我在 20 分钟前制作了自己的解决方案,效果很好,但根本没有连接到 ios-charts。我只是获取 ChartPieView 的 centerPoint 并根据每个饼图在 PieChart 中所占的宽度、高度和角度量计算一个点。所以我简单地使用毕达哥拉斯定理并使用 PieChartView.drawAngles 提供的角度。不过这看起来干净多了,谢谢!
    • @ClockWise 我已经更新了一点,因为你真的不需要重新计算角度 - 但仍然需要做 cos/sin 来获取 x/y
    • @ClockWise,您是如何获得 ChartPieView 的中心点的? pieChart.centerCircleBox 和常规的旧 pieChart.center 都没有标记饼图的真正中心。
    • 但是当饼图滚动时这不起作用......这些图像应该随着切片滚动。我怎样才能做到这一点?
    • 更新的问题和答案与新版本的 iso-chart (v 3.0) 在这里 -> stackoverflow.com/q/42113512/2739657
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多