嗨,守则的好伙伴。
我还在试图弄清楚Swift如何工作,以及如何使用它来制作漂亮的交互式UI。 因此,我试图使CGRect可拖动,触摸敏感等。
我已经看到在故事板中使用图片很容易这样做,但是在这种情况下,由于CGRect没有出现在故事板中,它无法正常工作因为它是由代码生成的。
到目前为止,我的代码是:
import UIKit
class ViewController: UIViewController, UIGestureRecognizerDelegate {
var square: UIView!
override func viewDidLoad() {
super.viewDidLoad()
square = UIView(frame: CGRect(x: 200, y: 200, width: 100, height: 100))
square.backgroundColor = UIColor.grayColor()
square.userInteractionEnabled = true
view.addSubview(square)
}
}
它是一个非常漂亮的灰色方块。 但我无法想象如何让它移动。我尝试了几件事,比如像这样添加IBAction的工作代码:
func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
recognizer.view.center = CGPoint(x:recognizer.view.center.x + translation.x,
y:recognizer.view.center.y + translation.y)
recognizer.setTranslation(CGPointZero, inView: self.view)
}
但是它返回了一个Thread 1 SIGBRT错误。 我尝试用square替换self.view,但不是更好。
包含错误的链接:http://imgur.com/SAmOOXv
如果有人可以向我展示与该主题相关的示例或链接,我会非常高兴。
感谢您的帮助!
编辑:要清楚,我尝试将其作为经典的IBAction,这意味着我试图找到一种方法来调用handlePan函数。但要么不是它的工作方式,要么我做得不对。