Ios 如何获取UITableViewCell相对于屏幕的位置
在我的应用程序中,表格视图位于屏幕的下半部分。我想知道所选单元格相对于整个屏幕的位置,而不是表格视图 我正在使用以下代码:Ios 如何获取UITableViewCell相对于屏幕的位置,ios,swift,Ios,Swift,在我的应用程序中,表格视图位于屏幕的下半部分。我想知道所选单元格相对于整个屏幕的位置,而不是表格视图 我正在使用以下代码: var cellPosition: CGRect? { guard let indexPath = tableView.indexPathForSelectedRow else { return nil } let rectOfCellInTableView = tableView.rectForRow(at: indexPath) return t
var cellPosition: CGRect? {
guard let indexPath = tableView.indexPathForSelectedRow else { return nil }
let rectOfCellInTableView = tableView.rectForRow(at: indexPath)
return tableView.convert(rectOfCellInTableView, to: tableView.superview)
}
但是CGRect
总是(0.0,0.0,375.0,82.0)
。这意味着是相对于表视图的位置<代码>y应该大得多
如何检索单元格相对于整个屏幕的位置?您可以使用
self.tableView.convert(rectOfCellInTableView,to:UIScreen.main.coordinateSpace)
但这会给在iPad上以分屏模式运行的应用程序带来问题。如果这是在视图控制器中进行的,为什么要转换为tableView.superview
而不是self.view
?我认为可以使用UIScreen.main.coordinateSpace,因为它只在iPhone上使用。我不能使用self.view,因为我实际上不在viewcontroller中,我有一个单独的对象用于表视图数据源。你把那段代码放在哪里?