FUIChartFloorplanViewController-需要从图表中获取选定的点

2020-08-20 09:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我已经使用FUIChartFloorplanViewController实现了图表。 我已在图表视图中启用了多点触控,试图在chartView中获取两个选定的点。

请找到附件的屏幕截图。

请使用api/delegate方法帮助我达到要求。

谢谢

Ruchi

(138.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我已经使用FUIChartFloorplanViewController实现了图表。 我已在图表视图中启用了多点触控,试图在chartView中获取两个选定的点。

请找到附件的屏幕截图。

请使用api/delegate方法帮助我达到要求。

谢谢

Ruchi

(138.7 kB)
付费偷看设置
发送
1条回答
Alawn_Xu
1楼-- · 2020-08-20 09:25

解决方案是添加FUIChartViewDelegate,以处理水龙头。 这是一个支持点击处理的完整实现

导入UIKit
 导入SAPFiori

 类AnalyticFloorplanArea:FUIChartFloorplanViewController {

     覆盖func viewDidLoad(){
         super.viewDidLoad()
        
         self.titleText.text ="每月总收入($)"
         self.status.text =" 1小时前更新"
         self.subtitle.text =" 2017"
         self.chartView.chartType = .area
         self.chartView.categoryAxis.labelLayoutStyle = .allOrNothing
         self.chartView.dataSource =自我
         self.chartView.delegate =自我
         self.valuesAxisTitle.text ="总收入($)"
         self.categoryAxisTitle.text ="月"
         self.seriesTitles = chartSeriesTitles()。map {FUIText(stringLiteral:$ 0)}
        
         self.summaryView.dataSource =自我
         self.summaryView.delegate =自我
         self.summaryView.seriesTitleText = chartSeriesTitles()。map {FUIText(stringLiteral:$ 0)}
     }
    
     让df = DateFormatter()
 }

 扩展AnalyticFloorplanArea:FUIChartSummaryDataSource {

     func chartView(_ chartView:FUIChartView,summaryItemForCategory categoryIndex:Int)-> FUIChartSummaryItem?  {
        
         让item = FUIChartSummaryItem()
         让值:[双精度]
        
         切换categoryIndex {
         情况1:
             item.categoryIndex = -1
             item.isEnabled =否
            
             值= {
                 var值:[Double] = []
                 让seriesCount = chartData()。count
                 对于i in 0 ..  Int {
         返回chartData()。count
     }
    
     func chartView(_ chartView:FUIChartView,numberOfValuesInSeries seriesIndex:Int)-> Int {
         返回chartData()[seriesIndex] .count
     }
    
     func chartView(_ chartView:FUIChartView,valueForSeries系列:Int,category categoryIndex:Int,维DimensionIndex:Int)-> Double?  {
         返回chartData()[系列] [类别索引]
     }
    
     func chartView(_ chartView:FUIChartView,formattedStringForValue值:Double,轴:FUIChartAxisId)->字符串?  {
         返回formattedTitleForDouble(value)
     }
    
     func chartView(_ chartView:FUIChartView,titleForCategory categoryIndex:Int,inSeries seriesIndex:Int)->字符串?  {
         返回df.standaloneMonthSymbols [categoryIndex]
     }
    
    //MARK:-用于生成和格式化示例数据的辅助方法
    
     func chartSeriesTitles()-> [String] {
         返回[" 2016"," 2017"]
     }
    
     func chartData()-> [[Double]] {
         return [[1.8,2.2,1.1,0.7,1.2,2.3,2.95,1.4,3.5,4.4,4.2,3.1] .map {$ 0 * 100000},[3.3,3.7,3.55,3.7,3.3,3.5,3.5,  3.1,3.4,3.5,3.0,3.6] .map {$ 0 * 100000}]
     }
    
     func formattedTitleForDouble(_ value:Double)->字符串?  {
         让numberFormatter = NumberFormatter()
         numberFormatter.numberStyle = .currencyAccounting
         numberFormatter.maximumFractionDigits = 0
         返回numberFormatter.string(从:值作为NSNumber)
     }
 }

 扩展名AnalyticFloorplanArea:FUIChartViewDelegate {
     func chartView(_ chartView:FUIChartView,didChangeSelections选择:[FUIChartPlotItem]?){
         打印(selections?.map({$ 0}))
     }
 }

 扩展AnalyticFloorplanArea {
    //MARK:实用工具
    
     func trendSemanticColor(用于值:Double,isNegativePoor:Bool = true)-> UIColor?  {
         让红色= UIColor.preferredFioriColor(forStyle:.negative)
         让绿色= UIColor.preferredFioriColor(forStyle:.positive)
         切换值{
         情况.. <0:
             返回isNegativePoor吗? 红色:绿色
         案例0 ...:
             返回isNegativePoor吗? 绿色:红色
         默认:
             返回零
         }
     }
    
     func trendIcon(用于值:Double,isNegativePoor:Bool = true)-> UIImage?  {
        放手= FUIIconLibrary.analytics.trendUp.withRenderingMode(.alwaysTemplate)
     失望= FUIIconLibrary.analytics.trendDown.withRenderingMode(.alwaysTemplate)
         切换值{
         情况.. <0:
             返回isNegativePoor吗? 下:上
         案例0 ...:
             返回isNegativePoor吗? 上:下
         默认:
             返回零
         }
     }
 }


 

一周热门 更多>