想知道为什么当我将白点拖到小点上时,它会在我的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)"
}
}
}
最佳答案
你没有提供太多信息。
当用户用手指平移时,平移手势识别器会报告连续的坐标流。当你把一个点拖到另一个点上时,你可能会得到多个“点击”。你需要做些测试,看看小点是否被吃掉了。因为您已经将小点上的图像设置为零,所以可以检查:
if (WhiteDot.frame.contains(SmallDot.frame) && SmallDot.image != nil) {
SmallDot.image = nil;
AddOne += 1
Score.text = "\(AddOne)"
}
注意,像
whiteDot
、smallDot
、addOne
和score
这样的变量名应该以小写字母开头。类名和类型应该以大写字母开头。这是斯威夫特的一个强有力的惯例,你应该遵守它。这门语言并不强迫你遵循它,但我不会雇佣一个没有遵循它的程序员。关于ios - UITextField添加超过1,产生随机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45134235/