gpt4 book ai didi

ios - 强制触摸 TableView 单元格圆角查看和弹出 - iOS Swift

转载 作者:行者123 更新时间:2023-11-30 12:43:58 24 4
gpt4 key购买 nike

在 tableView 中查看和弹出时,如何使 previewingContext.sourceRect 圆角化?

目前:

  1. 在 TableView 单元格上强制触摸

  2. 设置预览委托(delegate)如下:

    previewingContext.sourecRect = tableView.rectForRow(at:indexPath)

我已经尝试在 cellForRowAtIndexPath 中设置单元格的 cell.layer.cornerRadiuscell.layer.maskToBounds = true,但是预览源矩形仍然是一个完美的矩形。

相关代码:

UIVIewControllerPreviewingDelegate

func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
if tableView.isEditing == false {
guard let indexPath = tableView.indexPathForRow(at: location) else {
print("Nil Cell Found: \(location)")
return nil }
guard let detailVC = storyboard?.instantiateViewController(withIdentifier: "view") as? ViewController else { return nil }


previewingContext.sourceRect = tableView.rectForRow(at: indexPath)


return detailVC

} else {
return nil

}
}

TableView CellForRowAtIndexPath

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? CustomCell else { fatalError("No cell with identifier: cell") }

cell.titleLabel.text = "temp"

// cell.inputView?.layer.cornerRadius = 16.0
// cell.inputView?.layer.masksToBounds = true

// cell.contentView.layer.cornerRadius = 16.0
// cell.contentView.layer.masksToBounds = true

cell.layer.cornerRadius = 16.0
cell.layer.borderWidth = 2
cell.layer.borderColor = UIColor.orange.cgColor
cell.layer.masksToBounds = true

return cell

}

}

当前,当仅用力触摸表格 View 单元格时,下图中的蓝色框被选中并且是源矩形,但是我希望(一个单元格的)橙色圆角矩形作为源矩形。

enter image description here

最佳答案

您希望您的 Peek 是圆形的,然后是 Pop 作为普通的 ViewController 吗?因为 sourceRect 是预览的源(在本例中是单元格),而不是实际的预览。

如果您希望 Peek 变成圆形并正常 Pop ,请尝试此操作:

在您的 previewingContext(_ PreviewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? 返回之前添加此内容

detailVC.view.layer.cornerRadius = detailVC.view.bounds.width / 2
detailVC.view.layer.masksToBounds = true

并在您的 previewingContext(_ PreviewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) 上在显示之前添加此内容

detailVC.view.layer.cornerRadius = 0
show(detailVC, sender: self)

关于ios - 强制触摸 TableView 单元格圆角查看和弹出 - iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41885533/

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