gpt4 book ai didi

ios - 平移后将 View 返回到其原始位置

转载 作者:搜寻专家 更新时间:2023-10-31 22:21:06 25 4
gpt4 key购买 nike

我有一个可以平移的 View (鸡),释放后应该返回到它的原始位置。现在,当 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但这似乎是一个不同的问题,如果我的观点能跳回来,我会很高兴。

感谢任何建议。

最佳答案

应该为 View 设置自动布局。如果是,请确保在设置原始位置后更新约束。

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

}
}

关于ios - 平移后将 View 返回到其原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36925988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com