有没有一种方法可以让放置在UIscollview中的UIimageview无限滚动,同时可以使用苹果铅笔进行书写?

时间:2019-03-28 04:38:37

标签: ios swift uiscrollview uiimageview apple-pencil

我正在制作一个仪表板,使我可以在iPad上使用苹果铅笔进行书写。仪表板在uiscrollview顶部包含uiimageview。我想使此uiscrollview在用户向下滚动时无限滚动。我的目标是实现使用Apple Pencil和Ipad启用的每个笔记应用程序中具有的功能。

  1. 我尝试在uiscrollview和uiimageview上设置自动布局,但是如果您已经有图像数组或定义的图像然后向下滚动所有图像,则该方法可以使用。但就我而言,因为它是仪表板,所以没有任何虚拟图像可以放在背景中。

  2. 我试图给uiimageview很大的高度,但这不是一个优化的解决方案。另外,一旦我开始用苹果铅笔在uiimageview上进行笔画,结果就会放大。

  3. 我尝试创建许多uiimageview(例如5),并将它们分配给uiimageview大小为屏幕大小的“”。这样我就可以遍历它们,并在其上绘制苹果铅笔笔触。但是后来我无法确定在用苹果铅笔书写时应该使用哪个uiimageview绘制笔划。

下面是我针对上述各个要点尝试过的事情。

  1. 设置自动布局很简单,因为我在网上的多个可用博客中都遵循了自动布局。
  2. 我已经从情节提要中设置了uiimageiview的高度。
  3. 最后尝试的方法是使用下面的代码。
 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。

0 个答案:

没有答案