gpt4 book ai didi

TableViewCell 中的 SwiftCharts StackBars 难以点击

转载 作者:行者123 更新时间:2023-11-28 06:12:06 25 4
gpt4 key购买 nike

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

我将图表栏嵌套在 UITableViewCells 中。当我点击单元格(不是直接点击事件栏)时,我导航到另一个 View 。目前一切都很好,除非我直接点击栏本身。似乎有一个 tapGestureRecognizer 或覆盖单元格点击的栏上的东西。目前,当我点击栏时,stackFrameSelectionViewUpdater 运行,这会改变栏的不透明度,但是,打印语句永远不会运行。 我想禁用栏上的 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

最佳答案

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

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如果你对此感到好奇

关于TableViewCell 中的 SwiftCharts StackBars 难以点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46245227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com