我正在制作一个仪表板,使我可以在iPad上使用苹果铅笔进行书写。仪表板在uiscrollview顶部包含uiimageview。我想使此uiscrollview在用户向下滚动时无限滚动。我的目标是实现使用Apple Pencil和Ipad启用的每个笔记应用程序中具有的功能。
我尝试在uiscrollview和uiimageview上设置自动布局,但是如果您已经有图像数组或定义的图像然后向下滚动所有图像,则该方法可以使用。但就我而言,因为它是仪表板,所以没有任何虚拟图像可以放在背景中。
我试图给uiimageview很大的高度,但这不是一个优化的解决方案。另外,一旦我开始用苹果铅笔在uiimageview上进行笔画,结果就会放大。
我尝试创建许多uiimageview(例如5),并将它们分配给uiimageview大小为屏幕大小的“”。这样我就可以遍历它们,并在其上绘制苹果铅笔笔触。但是后来我无法确定在用苹果铅笔书写时应该使用哪个uiimageview绘制笔划。
下面是我针对上述各个要点尝试过的事情。
func drawStroke(from fromPoint: CGPoint, to toPoint: CGPoint) {
UIGraphicsBeginImageContext(view.frame.size)
guard let context = UIGraphicsGetCurrentContext() else {
return
}
tempImageView.image?.draw(in: view.bounds)
context.move(to: fromPoint)
context.addLine(to: toPoint)
context.setLineCap(.round)
context.setBlendMode(.normal)
context.setLineWidth(CGFloat(1.0))
context.setStrokeColor(color.cgColor)
context.strokePath()
tempImageView.image = UIGraphicsGetImageFromCurrentImageContext()
tempImageView.alpha = opacity
UIGraphicsEndImageContext()
}
上面的代码包含tempImageView,并在其上绘制了笔触,但是如果我有五个uiimageview,如何确定要单击哪个,并使用该uiimageview代替tempImageView。