Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何获取UITableViewCell相对于屏幕的位置_Ios_Swift - Fatal编程技术网

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中,我有一个单独的对象用于表视图数据源。你把那段代码放在哪里?