如何仅在有限的区域内移动图像?

时间:2017-05-06 22:17:21

标签: ios swift swift3

有没有办法限制移动物体的面积?
更确切地说,我希望白色圆圈只在绿色圆圈周围移动。[Screen Bellow](与跟踪女人的Clue应用程序中的相同) 周期周期)有没有办法做到这一点?我在考虑圆半径,但我想不出确定圆的中心的方法。

enter image description here

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)
    }
}

1 个答案:

答案 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)

你可能不得不弄乱这些值,但我之前做过类似的事情。