TableViewCell中的SwiftCharts StackBars很难挖掘

时间:2017-09-15 17:57:09

标签: swift uitableview swiftcharts

我创建了一个日历应用程序,它使用SwiftCharts显示如下所示的时间栏: enter image description here

我将图表栏嵌套在UITableViewCells中。当我点击单元格(而不是直接触发事件栏)时,我会导航到另一个视图。除非我直接点击酒吧本身,否则目前一切都很有效。似乎有一个tapGestureRecognizer或条形图上的东西覆盖了单元格点击。目前,当我点击栏stackFrameSelectionViewUpdater运行时,这会更改栏的不透明度,但是,print语句永远不会运行。 我想在条形图上禁用tapRecognizer或点击触发segue 。知道我怎么做吗?

这是我目前的代码:

barStack = ChartStackedBarsLayer(xAxis: xAxis,
                             yAxis: yAxis,
                             innerFrame: innerFrame,
                             barModels: allDayEventBar,
                             horizontal: true,
                             barWidth: 500,
                             settings: chartviewSettings,
                             stackFrameSelectionViewUpdater: ChartViewSelectorAlpha(selectedAlpha: 1, deselectedAlpha: 0.75),
                            tapHandler: {tappedBar in
                                print("user tapped bar")
                                //run segue
                            })

关于这个问题的github帖子:StackBars in TableViewCell difficult to tap

1 个答案:

答案 0 :(得分:1)

这可能是由于我在不知情的情况下通过在不同的ViewController中实例化图表而创建的分层问题引起的,然后将其附加到父ViewController内的视图中。虽然我从来没有解决过这个问题,但是找到了一个像这样的长按手势识别器的体面工作:

let longPressGesture:UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPress(_:)))
longPressGesture.minimumPressDuration = 0.3 
longPressGesture.delegate = self
self.usersTableVew.addGestureRecognizer(longPressGesture)

 func  handleLongPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
        if longPressGestureRecognizer.state == UIGestureRecognizerState.began {
            let touchPoint = longPressGestureRecognizer.location(in: self.view)
            if let indexPath = self.usersTableVew.indexPathForRow(at: touchPoint) {
                let cellData = self.homeTableData[indexPath.section][indexPath.row]
                GlobalNavDelegate.homeVCDelegate!.selectedName = cellData.name
                GlobalNavDelegate.homeVCDelegate!.segueToEditPersonCal()
            }
        }
    }

如果您对此感到好奇,请查看github post