我创建了一个日历应用程序,它使用SwiftCharts显示这样的时间条:

我将图表条嵌套在UITableViewCells中。当我点击单元格(不是直接的事件栏)时,我导航到另一个视图。目前的一切都很好,除了我直接点击酒吧本身。似乎在条形图上有一个tapGestureRecognizer或什么东西正在覆盖单元格点击。目前,当我点击这个条形图时,stackFrameSelectionViewUpdater会运行,这会改变条形图的不透明性,但是,print语句永远不会运行。Id希望禁用条上的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难以挖掘
发布于 2017-10-02 03:51:17
这可能是由于一个不知情的分层问题造成的,我在不同的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哨所感兴趣,请查看它。
https://stackoverflow.com/questions/46245227
复制相似问题