gpt4 book ai didi

ios - 强制触摸 UITableViewCell 内部的 UICollectionView

转载 作者:搜寻专家 更新时间:2023-10-30 23:05:41 25 4
gpt4 key购买 nike

我有一个带有 Tableview 的 viewController、多个 TableViewCell,并且在每个 TableViewCell 中有一个带有多个 UICollectionViewItems 的 UICollectionView。每个 collectionView 项目都有一个标签和 ImageView 。我正在尝试让 3d 触摸工作,以便用户通过强制触摸不包含 Collection View 的 tableCell 区域来查看和弹出,预览并弹出到一个 View Controller 中,然后能够执行与 collectionView 中的其中一张图像相同,但预览并弹出到不同的 View Controller 中。我的第一个场景工作正常,当开始强制触摸和“偷看”时,tableCell 在屏幕上保持清晰。我坚持让它在 Collection View 中工作,无论我做什么,只有 ImageView 框架在第一个 tableview 行上保持清晰,而不管我实际按下的是哪一行。代码如下:

    func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {

//get the tableviewCell
if let tableCellPath = tableView.indexPathForRow(at: location) {
print("tableCellPath=", tableCellPath)
if let tableCell = tableView.cellForRow(at: tableCellPath) as? VenueMainTableViewCell {
//user tapped on a beer in the collectionview
if let collectionView = tableCell.collectionView {
let collectionPoint = collectionView.convert(location, from: tableView)
if let cvPath = collectionView.indexPathForItem(at: collectionPoint) {
let collectionViewCell = collectionView.cellForItem(at: cvPath) as? VenueMainCollectionViewCell

let cvFrame = collectionViewCell?.itemLabelImageView.frame

let bc = storyboard?.instantiateViewController(withIdentifier: "itemDetail") as! ItemDetailViewController
let ven = UTcheckin.sharedInstance.Venues[collectionView.tag]
let selectedItem = ven.ItemsAtVenue[(collectionViewCell?.tag)!]
bc.item = selectedItem

previewingContext.sourceRect = cvFrame!

return bc
}
}
}
if let tablePath = tableView.indexPathForRow(at: location) {
//user tapping on a venue, this works
previewingContext.sourceRect = tableView.rectForRow(at: tablePath)
let vc = storyboard?.instantiateViewController(withIdentifier: "venueDetail") as! VenueDetailViewController
vc.venue = UTcheckin.sharedInstance.Venues[tablePath.row]

return vc
}
return nil
}
return nil
}

我似乎需要获取 Collection View 项 ImageView 的矩形,但我该如何访问它,因为它位于表格单元格中?在此先感谢您的指点。

最佳答案

我认为这个解决方案与 UITableView 相同。您必须使用 registerForPreviewingWithDelegate 方法注册每个单元格以进行预览。你应该注册它cellForRow 方法。

这对你应该很有帮助。特别是 The Solution 段落:


How to Peek & Pop A Specific View Inside a UITableViewCell

关于ios - 强制触摸 UITableViewCell 内部的 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41498963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com