2017-09-15 44 views
1

我已經創建了使用SwiftCharts顯示一個時間條這樣的日曆應用程序: enter image description hereSwiftCharts StackBars在TableViewCell很難挖掘

我巢圖表條內部UITableViewCells。當我點擊單元格(而不是直接顯示事件欄)時,我會導航到另一個視圖。除了當我直接點擊酒吧本身時,所有東西都很好用。看起來好像有一個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

回答

1

這可能是由分層問題在不知不覺中引起了我創建的實例圖表中不同的視圖控制器,然後將其附加到父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如果你好奇吧