有没有办法限制移动物体的面积?
更确切地说,我希望白色圆圈只在绿色圆圈周围移动。[Screen Bellow](与跟踪女人的Clue应用程序中的相同)
周期周期)有没有办法做到这一点?我在考虑圆半径,但我想不出确定圆的中心的方法。
import UIKit
class MainViewController: UIViewController {
//OUTLETS
@IBOutlet weak var movingCircle: UIImageView!
@IBAction func touchMovingCircle(_ sender: UIPanGestureRecognizer) {
let translation = sender.translation(in: self.view)
if let view = sender.view{
view.center = CGPoint(x:view.center.x + translation.x, y: view.center.y + translation.y)
}
let point = CGPoint(x: 0, y:0)
sender.setTranslation(point, in: self.view)
}
}
答案 0 :(得分:1)
我建议尝试改变白圈的锚点,使其位于较大圆圈的中心。然后你可以简单地旋转圆圈,它会给你想要的结果。
//Get the necessary y anchor point
let yAnchor = largeCircleRadius / movingCircleDiameter
movingCircle.layer = CGPoint(x: 0.5, y: yAnchor)
这可能不对,但它会是那样的。然后围绕圆圈移动它,你所要做的就是设置白色圆圈的旋转。
movingCircle.transform = CGAffineTransform(rotationAngle: yourAngle)
你可能不得不弄乱这些值,但我之前做过类似的事情。