使用 UIPanGestureRecognizer 旋转 ImageView,错误-- Swift
Rotating ImageView with UIPanGestureRecognizer, ERROR-- Swift
我正在尝试使用 pangesturerecognizer 旋转图像视图。基本上,我根据 x 坐标旋转图像。我快到了,但我 运行 遇到了一些错误。
我通过这样做设置了手势识别器(我必须以编程方式完成所有事情):
let personDrag = UIPanGestureRecognizer(target: self, action: #selector(foo.personDragRecognizer))
rPersonImageView.isUserInteractionEnabled = true
rPersonImageView.addGestureRecognizer(personDrag)
self.fooVarTap6 = personDrag //the class is called foo
然后是手势识别函数:
@objc func personDragRecognizer(_ gestureRecognizer: UIPanGestureRecognizer) {
guard personDrag.state == .began || personDrag.state == .changed else {
return
}
guard let imgView = personDrag.view else {
return
}
let translation = personDrag.translation(in: self.view)
imgView.center = CGPoint(x: imgView.center.x + translation.x, y: imgView.center.y + translation.y)
personDrag.setTranslation(CGPoint.zero, in: self.view)
//originally had self before .degreesToRadians
let angle: CGFloat = rPersonImageView.degreesToRadians(180.0)
/* After reaching x point case - rotating and setting rotation occured to prohibit further rotation */
if imgView.layer.frame.origin.x <= 190, currentRotation != .xPoint190 {
imgView.transform = imgView.transform.rotated(by: angle)
currentRotation = .xPoint190
} else if imgView.layer.frame.origin.x >= 300, currentRotation != .xPoint300 {
imgView.transform = imgView.transform.rotated(by: angle)
currentRotation = .xPoint300
}
}
我提到 personDrag 的每个地方都说 "use of unresolved identifier personDrag" 但我定义了 personDrag,如您所见。它还说 "UIImageView has no member degreesToRadian" 但堆栈上的其他人说应该。谁能帮我这个?任何帮助将不胜感激!提前致谢。
干杯,
西奥
personDrag
被定义为手势识别器,正确分配并正确编码。但是在你的 personDragRecognizer()
作为 定义的 中,每个引用都应该反对 gestureRecognizer
。
使事情正常进行的最简单的修复方法是将函数重命名为:
func personDragRecognizer(_ personDrag UIPanGestureRecognizer) {
// your code here
}
另一个修复方法是将其中的每个引用重命名为:
guard gestureRecognizer.state == .began || gestureRecognizer.state == .changed else {
return
}
依此类推。
我正在尝试使用 pangesturerecognizer 旋转图像视图。基本上,我根据 x 坐标旋转图像。我快到了,但我 运行 遇到了一些错误。
我通过这样做设置了手势识别器(我必须以编程方式完成所有事情):
let personDrag = UIPanGestureRecognizer(target: self, action: #selector(foo.personDragRecognizer))
rPersonImageView.isUserInteractionEnabled = true
rPersonImageView.addGestureRecognizer(personDrag)
self.fooVarTap6 = personDrag //the class is called foo
然后是手势识别函数:
@objc func personDragRecognizer(_ gestureRecognizer: UIPanGestureRecognizer) {
guard personDrag.state == .began || personDrag.state == .changed else {
return
}
guard let imgView = personDrag.view else {
return
}
let translation = personDrag.translation(in: self.view)
imgView.center = CGPoint(x: imgView.center.x + translation.x, y: imgView.center.y + translation.y)
personDrag.setTranslation(CGPoint.zero, in: self.view)
//originally had self before .degreesToRadians
let angle: CGFloat = rPersonImageView.degreesToRadians(180.0)
/* After reaching x point case - rotating and setting rotation occured to prohibit further rotation */
if imgView.layer.frame.origin.x <= 190, currentRotation != .xPoint190 {
imgView.transform = imgView.transform.rotated(by: angle)
currentRotation = .xPoint190
} else if imgView.layer.frame.origin.x >= 300, currentRotation != .xPoint300 {
imgView.transform = imgView.transform.rotated(by: angle)
currentRotation = .xPoint300
}
}
我提到 personDrag 的每个地方都说 "use of unresolved identifier personDrag" 但我定义了 personDrag,如您所见。它还说 "UIImageView has no member degreesToRadian" 但堆栈上的其他人说应该。谁能帮我这个?任何帮助将不胜感激!提前致谢。
干杯, 西奥
personDrag
被定义为手势识别器,正确分配并正确编码。但是在你的 personDragRecognizer()
作为 定义的 中,每个引用都应该反对 gestureRecognizer
。
使事情正常进行的最简单的修复方法是将函数重命名为:
func personDragRecognizer(_ personDrag UIPanGestureRecognizer) {
// your code here
}
另一个修复方法是将其中的每个引用重命名为:
guard gestureRecognizer.state == .began || gestureRecognizer.state == .changed else {
return
}
依此类推。