我正在制作一个使用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...
,但我真的不知道为什么。
答案 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()