我在尝试按下按钮时试图使可拖动图像(猴子)代替另一个可拖动图像(香蕉)。
到目前为止,我已经能够获取香蕉的坐标,并将其存储为猴子的新的x,y坐标。但是,视图不会更新,猴子也不会移动到新位置。
我确定我需要更新视图,但无法弄清楚。我试图添加一个新的子视图(self.view.addSubview(monkey)),但是当我这样做时,将重置整个视图,并且猴子和香蕉都将返回其原始坐标。
这是操作按钮的代码:
@IBAction func getCoordinates (sender : AnyObject) {
var bananax = banana.frame.origin.x
var bananay = banana.frame.origin.y
var monkeyx = monkey.frame.origin.x
var monkeyy = monkey.frame.origin.y
println("Banana : \(bananax) et \(bananay)")
println("Monkey's default coordinates : \(monkeyx) et \(monkeyy)")
monkeyx = bananax
monkeyy = bananay
println("Monkey's new coordinates : \(monkeyx) et \(monkeyy)")
}
关于如何仅更新猴子而不重置整个视图的任何想法吗?
谢谢 :)
这些值只是扔掉,当你设置monkeyx
和monkeyy
下方。
var monkeyx = monkey.frame.origin.x
var monkeyy = monkey.frame.origin.y
分配下面的值只是将值从一个局部变量分配给另一个。实际上并不会更改的坐标monkey
。
monkeyx = bananax
monkeyy = bananay
您必须通过构造一个新的CGRect
并分配monkey
的来设置猴子的新坐标frame
:
monkey.frame = CGRect(x: bananax, y: bananay, width: monkey.frame.size.width, height: monkey.frame.size.height)
当您只是将monkey
'origin banana
'设置为'origin '时,您可以删除所有var声明,并通过monkey
使用monkey
'size和banana
'origins构建'new frame来将其减少为一行:
monkey.frame = CGRect(origin: banana.frame.origin, size: monkey.frame.size)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句