当我们快速抽签时,任何身体都可以帮助我消除这种差距 以下是问题的图像:
这里是我们可以使用图像指针在沙子背景上绘制的代码。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
lastPoint = touch!.location(in: ImageView)
BindImageView(centerpoint: lastPoint)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let fromPoint = touch!.location(in: ImageView)
//drawLineFrom(fromPoint: lastPoint, toPoint: fromPoint)
BindImageView(centerpoint: fromPoint)
lastPoint = fromPoint
}
func BindImageView(centerpoint:CGPoint)
{
//print(centerpoint)
let imagview = UIImageView()
imagview.image = UIImage(named: "b1")
imagview.center = centerpoint
imagview.frame.size = CGSize(width: 10, height: 15)
self.view.addSubview(imagview)
let angle = atan2(self.lastPoint.y-(centerpoint.y), self.lastPoint.x-(centerpoint.x))
imagview.transform = CGAffineTransform(rotationAngle: angle)
}
答案 0 :(得分:0)
您的问题如下:每次触摸&#34;您都会创建一个新图像。移动,以便跟随手指(并相应地旋转它)。但是图像&#34; b1&#34;宽度/高度只是几个像素,而手指在两个touchesMoved
事件之间移动的距离可能更长。
我建议
UIImage.resizableImage(withCapInsets:)
或在资产目录中,按钮&#34;切片&#34;)然而,如果用户太快&#34;并绘制&#34;曲线&#34;,您使用图像创建的线仍然会有些棱角分明但不会弯曲。因此,真正绘制贝塞尔路径(和阴影)可能会更好。这非常棘手,但与一次又一次地创建UIImage
和UIImageView
相比,所需的资源也更少。