ios Swift 3索引选定行的路径不正确

nnsrf1az  于 2023-03-14  发布在  iOS
关注(0)|答案(1)|浏览(126)

我正在尝试调整某个连续段中弹出窗口视图的大小。弹出窗口可以工作,但位置错误。
为了设置位置,我使用以下代码尝试选择当前IndexPathForSelectedRow,然后设置弹出窗口值。
打不开了,我需要你帮我找出原因。
我使用的代码如下:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        
        if segue.identifier == "RecordToNotes" {
           
            if let path = detailsTable.indexPathForSelectedRow {
                let cellFrame = detailsTable.rectForRow(at: path)
               
                let vc = segue.destination
                vc.preferredContentSize = CGSize(width: 400, height: 400)
                let controller = vc.popoverPresentationController
                controller?.delegate = self
                controller?.sourceView = detailsTable
                controller?.sourceRect = CGRect(x: cellFrame.midX + 50, y: cellFrame.midY, width: 0, height: 0)
                controller?.permittedArrowDirections = .right
            }
            
        }
        
    }

路径返回零。谢谢你的帮助。

l0oc07j2

l0oc07j21#

尝试将帧转换到ViewController。视图坐标
使用这条线路

controller?.sourceRect = self.view.convert(cellFrame, from: detailsTable)

代替

controller?.sourceRect = CGRect(x: cellFrame.midX + 50, y: cellFrame.midY, width: 0, height: 0)

希望这能帮上忙

相关问题