保存坐标或更新帧

时间:2016-08-29 12:11:15

标签: ios swift uigesturerecognizer cgpoint

我正在制作一个使用gestureRecognizer拖放一些view的应用程序。然而新闻职位没有保存,我真的不知道如何获得它 首先,我使用此gestureRcognizer来移动view

func glisserDeposerNote(sender : UIPanGestureRecognizer) {
    let note1 = sender.view!
    let touchCoordinates = sender.locationInView(self.scrollview)
    note1.center = touchCoordinates
    self.viewnote1.translatesAutoresizingMaskIntoConstraints = true
}

其次,我尝试将CGPoint转换为NSData,但之后我不知道如何保存它:

let points = touchCoordinates
let pointObj = NSValue(CGPoint: points)
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(pointObj, forKey: "coord1")

但是当我尝试移动视图时,这会导致崩溃。我注意到它是因为defaults.setObject...,但我真的不知道为什么。

2 个答案:

答案 0 :(得分:1)

似乎CGPoint不支持用户默认值。尝试将其转换为字符串,然后返回。你有这些工具。例如:

let pointValue = NSStringFromCGPoint(CGPoint(x: 0.1, y: 1.0))
NSUserDefaults.standardUserDefaults().setValue(pointValue, forKey: "coord1")
let point = CGPointFromString(NSUserDefaults.standardUserDefaults().valueForKey("coord1") as! String)

答案 1 :(得分:0)

我终于发现: UIView won't move correctly on ViewDidLoad

所以我必须使用override func viewDidLayoutSubviews()