根据文档,PKDrawing符合可等价物。但是,如果将2幅空白图与==进行比较,则返回false。我通过反馈应用程序提交了一个bug,但我在这里发布,希望我错过了一些东西,或者其他人也会提交一个bug报告,这样就可以解决这个问题。我需要检查一个PKCanvasView是否有任何内容,并且由于PKDrawing是不透明的,所以我们不能查询笔画或其他数据。鉴于api有限,检查的最佳方法似乎如下所示:
extension PKCanvasView {
func isEmpty() -> Bool {
return self.drawing == PKDrawing()
}
}这将返回false,尽管不管canvasView.drawing是什么。甚至,PKDrawing() == PKDrawing()返回false。
发布于 2021-06-22 14:20:28
在这种情况下,您可以检查绘图对象的bounds。iOS 14提供了此绘图所包含的strokes。
extension PKDrawing {
func isEmpty() -> Bool {
if #available(iOS 14.0, *) {
return strokes.isEmpty
} else {
return drawing.bounds.isEmpty
}
}
}发布于 2020-06-12 19:46:47
这是我检查绘图是否为空白的方法:
extension PKDrawing {
var isBlank: Bool {
get {
return self.bounds == CGRect(origin: CGPoint(x: CGFloat.infinity, y: CGFloat.infinity), size: .zero)
}
}
}https://stackoverflow.com/questions/57565522
复制相似问题