作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个日历应用程序,它使用 SwiftCharts 来显示这样的时间栏:
我将图表栏嵌套在 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/
我创建了一个日历应用程序,它使用 SwiftCharts 来显示这样的时间栏: 我将图表栏嵌套在 UITableViewCells 中。当我点击单元格(不是直接点击事件栏)时,我导航到另一个 View
我是一名优秀的程序员,十分优秀!