滚动时在表视图Swift中的tableView时混蛋

时间:2018-10-04 12:15:59

标签: ios swift uitableview tableofcontents contentsize

我正在UITableview内使用tableView作为我的一个屏幕。这里有一个InstalmentMainTableViewCellInstalmentInnerTableViewCell

我使用以下代码将内部tableView滚动到全高度:

class InnerTableView: UITableView {
    override var intrinsicContentSize: CGSize {
        //This is for extra space after inner tableview size. can be required
        self.layoutIfNeeded()
        return self.contentSize
    }
}

现在,问题是当我从第一卷滚动到MainTableViewCell的第二个单元格时,它停留了一秒钟,而再也没有发生。每当视图控制器出现时,它都是第一次发生。

这是完整的代码:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    switch (tableView.tag) {
    case 100:
        return instalmentModel.count == 0 ? 0 : instalmentModel.count
    default:
        return instalmentModel[currentInstalmentIndex].EMIDetailModel.count == 0 ? 0 : instalmentModel[currentInstalmentIndex].EMIDetailModel.count
    }
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    switch (tableView.tag) {
    case 100:

        currentInstalmentIndex = indexPath.row

        let cell = tableView.dequeueReusableCell(withIdentifier: InstalmentsMainTableViewCell.className) as! InstalmentsMainTableViewCell

        if let model = self.instalmentModel[indexPath.row] as InstalmentModel? {

            if tableView.visibleCells.contains(cell) {
                self.putValue(self.yearLabel, "\(String(describing: model.year!))")
            }
            cell.emiTotal,text = "\(model.year!)"
        }
        return cell

    default:

        let cell = tableView.dequeueReusableCell(withIdentifier: InstalmentsInnerTableViewCell.className) as! InstalmentsInnerTableViewCell

        if let model = self.instalmentModel[self.currentInstalmentIndex].EMIDetailModel[indexPath.row] as EMIDetailModel? {

            cell.indicatorView.backgroundColor = UIColor.red
        }
        return cell
    }
}

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {

    let indexPath = self.instalmentsTableView.indexPathsForVisibleRows?[0]
    if let model = instalmentModel[(indexPath?.row)!] as InstalmentModel? {
        putValue(yearLabel, "\(model.year!)")
    }
}

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    self.view.layoutIfNeeded()
    self.view.setNeedsLayout()
}

要求是: Requirement for tableView inside tableview

0 个答案:

没有答案