长按视图时,我试图调整textField的位置,但是由于某些原因,while循环永远不会停止运行。我的代码如下所示:
func buttonLongPressed(gestureRecognizer:UIGestureRecognizer){
if textEdit.editing == true{
self.textEdit.endEditing(true)
}
while gestureRecognizer.state == UIGestureRecognizerState.Began{
println("BEGAN")
self.textEdit.frame = CGRectMake(0, gestureRecognizer.locationInView(self.view).y, self.view.frame.width, 44)
}
}
我不明白为什么这不起作用,以及如何以其他方式做到这一点。
任何建议,将不胜感激。
手势识别器会在状态更改时调用您的操作方法-从while循环中轮询状态无效,它永远不会更改。
它可能像这样工作:
您可以看到,如果您的操作方法永不返回,则手势识别器将永远不会再次唤醒并查看新的输入。
您可能可以像这样更改功能:
func longPressAction( g:UILongPressGestureRecognizer )
{
switch g.state
{
case: .Changed
{
// handle one drag update... but don't loop
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句