在tableView中查看和弹出时,如何使previewingContext.sourceRect
四舍五入?
目前:
强制触摸TableView单元格
设置预览委托:
previewingContext.sourecRect = tableView.rectForRow(at:indexPath)
我已经尝试设置单元格cell.layer.cornerRadius
& cell.layer.maskToBounds = true
中的cellForRowAtIndexPath
,但预览结果矩形仍然是一个完美的矩形。
相关代码:
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
}
}
目前只强制触摸一个tableview单元格时,下图中的蓝色框被选中并且是sourcerect,但我希望橙色圆角rect(一个单元格)成为源矩形。
答案 0 :(得分:0)
您希望 ESP8266.write("AT+CWJAP=");
ESP8266.write(SSID_ESP);
ESP8266.write(",");
ESP8266.write(SSID_KEY);
ESP8266.write("\r\n");
成为正常Peek
后的Pop
吗?
因为sourceRect是预览源(在本例中是您的单元格),而不是您的实际预览。
如果您希望Peek成为一个圆圈并正常弹出,请尝试此操作:
在ViewController
上添加此内容,然后再返回
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)