我试图调整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)
}
}
我不明白为什么这不起作用,以及如何以其他任何方式进行。
任何建议都将不胜感激。
答案 0 :(得分:1)
手势识别器在状态发生变化时调用你的动作方法 - 从while循环中轮询状态无效,它永远不会改变。
它可能是这样的:
您可以看到,如果您的动作方法永远不会返回,手势识别器将永远不会再次唤醒并查看新输入。
您可以像这样更改您的功能:
func longPressAction( g:UILongPressGestureRecognizer )
{
switch g.state
{
case: .Changed
{
// handle one drag update... but don't loop
}
}
}