Вот моя реализация. < /p>
Навигация со страницы «Исследование»: < /p>
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let detailVM = NearMeSharedReviewVM(
type: .trending,
dataSource: viewModel.dataSource,
currentPage: viewModel.currentPage,
isFinalPage: viewModel.isFinalPage
)
let detailVC = NearMeSharedReviewVC(withViewModel: detailVM, selectedRow: indexPath.row)
navigationController?.pushViewController(detailVC, animated: true)
}
< /code>
Страница моей информации: < /p>
let selectedRow: Int
lazy var reviewTV: UITableView = {
let tv = UITableView()
tv.separatorStyle = .none
tv.showsVerticalScrollIndicator = false
tv.rowHeight = UITableView.automaticDimension
tv.estimatedRowHeight = UITableView.automaticDimension
tv.backgroundColor = .clear
tv.contentInset = .zero
tv.dataSource = self
tv.delegate = self
tv.mj_footer = refreshFooter
tv.register(CombinedViewCell.self, forCellReuseIdentifier: CombinedViewCell.identifier)
return tv
}()
< /code>
и < /p>
override func viewDidLoad() {
super.viewDidLoad()
reviewTV.reloadData()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if selectedRow > 0 {
let indexPath = IndexPath(row: selectedRow, section: 0)
reviewTV.performBatchUpdates(nil) { [weak self] _ in
self?.reviewTV.scrollToRow(at: indexPath, at: .top, animated: false)
}
showGuiderView(from: vm.dataSource[selectedRow].reviewContent)
}
}
private func showGuiderView(from review: [NearMeReviewContent]?) {
if nearMeConfig.isGuideViewShowned {
return
}
if let reviewContent = review, !reviewContent.isEmpty {
let guideView = NearMeUserInteractionGuideVC()
guideView.modalPresentationStyle = .overFullScreen
present(guideView, animated: false)
}
}
< /code>
Я сталкиваюсь с трудностями в прокрутке в выбранную позицию индекса. Высота ячейки моей таблицы может быть над предполагаемой высотой для 1 содержания. Подозреваем, что из -за вопросов рендеринга.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... oll-to-row