我正在UITableview
内使用tableView
作为我的一个屏幕。这里有一个InstalmentMainTableViewCell
和InstalmentInnerTableViewCell
。
我使用以下代码将内部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()
}