如何在tableview方法之外获取tableview [section]?

时间:2018-10-06 07:09:48

标签: ios swift uitableview uicollectionviewcell

我有一个带有DidSelectMethod的collectionview日历,在这种方法中,我想检查所选日期是否等于==到同一视图中某个表视图中的任何日期(日期是该表视图的Header)控制器,然后在tableview中滚动到该日期。

我需要一些帮助,从逻辑上进行思考。现在,我认为我需要以某种方式使tableview的[section]脱离tableview方法,但我认为这不是正确的方法。

这是我到目前为止正在尝试的事情:

收藏夹查看日历的DidSelect方法:

func calendar(_ calendar: JTAppleCalendarView, didSelectDate date: Date, cell: JTAppleCell?, cellState: CellState) {
    configureCalendarCell(cell: cell, cellState: cellState)
    cell?.bounce()
    selectedDate = date

// Check if selectedDate is == to any dates in the tableview 

// First, get the dates from TableView's Data Source. 
// The [datesFromCalendarXML] also make up the Headers of each section in TableView
let datesFromCalendarXML = allEventsInVisibleMonth.map {$0.eventdate}

// Reformat selectedDate from collectionView Calendar to String
let selectedDateToString = formatter.string(from: selectedDate!)

// See if the selected date matches any of the tableview dates
if datesFromCalendarXML.contains(selectedDateToString) {

    // set up tableView's scrollToRow
    // get [section] Int of the datesFromCalendarXML that matches
    // Can I get [section] outside of of tableview?
    let sectionOfDate = 

     let indexPath = IndexPath(row: 0 , section: sectionOfDate)
      self.tableView.scrollToRow(at: indexPath, at: UITableView.ScrollPosition.top, animated: true)

} else {}

正在寻找有关此操作的提示。

1 个答案:

答案 0 :(得分:1)

如果有人在找,这就是我的工作了。

我使用.index(of:_)在我的allEventsInVisibleMonth数组中获取selectedDate的索引,然后将该索引用于scrollToRow的indexPath:IndexPath。

let datesFromCalendarXML = allEventsInVisibleMonth.map {$0.eventdate}
    let selectedDateToString = formatter.string(from: selectedDate!)
    if let index = datesFromCalendarXML.index(of: selectedDateToString) {
        let indexPath = IndexPath(row: 0 , section: index)
        self.tableView.scrollToRow(at: indexPath, at:
        UITableView.ScrollPosition.top, animated: true)
    }