UITextField 添加超过 1 个,生成随机

UITextField adding more than 1, spawn random

想知道为什么当我将 WhiteDot 拖到 SmallDot 上时它会向我的 UITextField 添加超过 1 个?每次我 运行 iPhone 模拟器时都会有所不同。有时它会添加 11、2、3、5 等。不知道为什么? 另一个问题,当 SmallDot 消失时,我还希望它在指定的视图中生成。分数在右上角。

class SecondViewController: UIViewController {

private var AddOne = 0

@IBOutlet weak var Score: UITextField!
}


@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
    let translation = recognizer.translation(in: self.view)
    if let view = recognizer.view {
        view.center = CGPoint(x:view.center.x + translation.x,
                              y:view.center.y + translation.y)
    }
    recognizer.setTranslation(CGPoint.zero, in: self.view)

    if (WhiteDot.frame.contains(SmallDot.frame)) {
        SmallDot.image = nil;
        AddOne += 1
        Score.text = "\(AddOne)"

    }


        }
}

您提供的信息不多。

当用户用手指平移时,平移手势识别器会报告连续的坐标流。当您将一个点拖到另一个点上时,您可能会得到多个 "hits"。您需要进行某种测试,看看较小的点是否已被吃掉。由于您已经将小点上的图像设置为零,您可以检查:

if (WhiteDot.frame.contains(SmallDot.frame) && SmallDot.image != nil) {
    SmallDot.image = nil;
    AddOne += 1
    Score.text = "\(AddOne)"
}

请注意,whiteDotsmallDotaddOnescore 等变量名称应以小写字母开头。 Class 名称和类型应以大写字母开头。这是 Swift 中的一个严格约定,您应该遵循它。该语言不会强制您遵循它,但我不会雇用不这样做的程序员。