平移后将 View 返回到其原始位置
returning View to it`s original position after panning
我有一个视图(小鸡),当它被释放时,它可以围绕 return 平移到它的原始位置。现在,当 panGesture 结束时,小鸡就消失了。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// record original Position
originalChickenPosition = chicken.center
print(originalChickenPosition) // works fine
view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: "handlePan:"))
}
func handlePan(panGesture: UIPanGestureRecognizer){
switch panGesture.state{
case .Began:
// start flying
case .Changed:
// follow the pan
let dCenter = panGesture.translationInView(view)
chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
panGesture.setTranslation(CGPointZero, inView: view)
case .Ended:
// fly back
if originalChickenPosition != nil{
chicken.center = originalChickenPosition!
}
default: break
}
}
我发现了这个:Returning view to original position after pan gesture, swift但这似乎是一个不同的问题,如果我的观点能跳回来,我会很高兴。
感谢任何建议。
应为视图设置自动布局。
如果是,请确保在设置原始位置后更新约束。
func handlePan(panGesture: UIPanGestureRecognizer){
switch panGesture.state{
case .Began:
// start flying
case .Changed:
// follow the pan
let dCenter = panGesture.translationInView(view)
chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
panGesture.setTranslation(CGPointZero, inView: view)
case .Ended:
// fly back
if originalChickenPosition != nil{
chicken.center = originalChickenPosition!
}
**self.chicken.setNeedsUpdateConstraints()**
default: break
}
}
我有一个视图(小鸡),当它被释放时,它可以围绕 return 平移到它的原始位置。现在,当 panGesture 结束时,小鸡就消失了。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// record original Position
originalChickenPosition = chicken.center
print(originalChickenPosition) // works fine
view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: "handlePan:"))
}
func handlePan(panGesture: UIPanGestureRecognizer){
switch panGesture.state{
case .Began:
// start flying
case .Changed:
// follow the pan
let dCenter = panGesture.translationInView(view)
chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
panGesture.setTranslation(CGPointZero, inView: view)
case .Ended:
// fly back
if originalChickenPosition != nil{
chicken.center = originalChickenPosition!
}
default: break
}
}
我发现了这个:Returning view to original position after pan gesture, swift但这似乎是一个不同的问题,如果我的观点能跳回来,我会很高兴。
感谢任何建议。
应为视图设置自动布局。 如果是,请确保在设置原始位置后更新约束。
func handlePan(panGesture: UIPanGestureRecognizer){
switch panGesture.state{
case .Began:
// start flying
case .Changed:
// follow the pan
let dCenter = panGesture.translationInView(view)
chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
panGesture.setTranslation(CGPointZero, inView: view)
case .Ended:
// fly back
if originalChickenPosition != nil{
chicken.center = originalChickenPosition!
}
**self.chicken.setNeedsUpdateConstraints()**
default: break
}
}