我刚刚创建了两个函数,slideAuthViewUp
和slideAuthViewDown
,在您输入登录名或密码UITextfield
时会调用这些函数。在横向模式下查看整个身份验证表单非常有用。
如下所示:
[passwordTextField addTarget:self action:@selector(slideAuthFormUp) forControlEvents:UIControlEventEditingDidBegin];
[passwordTextField addTarget:self action:@selector(slideAuthFormDown) forControlEvents:UIControlEventEditingDidEnd];
[loginTextField addTarget:self action:@selector(slideAuthFormUp) forControlEvents:UIControlEventEditingDidBegin];
[loginTextField addTarget:self action:@selector(slideAuthFormDown) forControlEvents:UIControlEventEditingDidEnd];
现在,问题是当我点击密码文本字段时,登录文本字段调用了slideAuthFromDown,然后密码文本字段调用了slideAuthFormUp。因此,身份验证表单会在很短的时间内下降,这不是我想要的。我希望这个表格在这么短的时间内保持不变。
有人知道怎么做吗?
答案 0 :(得分:1)
您需要在短暂延迟后执行向下滑动,如果在该时间内发生滑动,请取消预定选择器。所以...有一个中间方法......
- (void)delayedSlideDown {
[self performSelector:@selector(slideAuthFormDown) withObject:nil afterDelay:0.2];
}
然后使用......
[passwordTextField addTarget:self action:@selector(delayedSlideDown) forControlEvents:UIControlEventEditingDidEnd];
最后将以下行添加到slideAuthFormUp ....
[NSObject cancelPreviousPerformRequestsWithTarget:self];
您可能需要使用0.2延迟...
答案 1 :(得分:0)
嗯......看看网站this example Appcodeblog中提供的here。代码来自那里..我不对代码负责,我只是引用该网站的evernote剪辑。在一个地方拥有一切。 ......从教程1到3开始。