我在这里使用了 Apple 在其文档中的演示代码:
让我的视图根据正在编辑的 textField 相应移动。它工作得很好,我的观点按照我的预期移动,除了一件事。
我的问题是,我可以选择一个 textField,它只会在我开始输入时向上移动视图,而不是在我实际选择 textField 时。
我实际上使用的是与文档中相同的代码(按照上面的链接)。非常令人沮丧,我看不出是什么原因造成的。谢谢。
我在这里使用了 Apple 在其文档中的演示代码:
让我的视图根据正在编辑的 textField 相应移动。它工作得很好,我的观点按照我的预期移动,除了一件事。
我的问题是,我可以选择一个 textField,它只会在我开始输入时向上移动视图,而不是在我实际选择 textField 时。
我实际上使用的是与文档中相同的代码(按照上面的链接)。非常令人沮丧,我看不出是什么原因造成的。谢谢。
这是逻辑见。
1)您最初需要一个Flag
值集或。假设是那个标志值。TRUE
ViewDidLoad
viewWillAPpear
isNeedToMove
你需要在你的代码中实现这些方法,使用它们不要忘记Adopt
你UITextFieldDelegate
的UIViewcontroller.h class
.
编辑:在这里,我已经更改了您在您的评论中提到的代码,您需要在触摸 . 时移动 UIView。TextFIeld
请参见下面是带有某些代码的逻辑。
addTargetTextField
到ViewDiodiLoad
- (void)viewDidload
{
[touchyTextField addTarget:self
action:@selector(yourDesiredMethod)
forControlEvents:UIControlEventTouchDown];
}
-(void)yourDesiredMethod
{
if(isNeedToMove)//this Flag Avoid The unnecessary move call.
{
//here call the method which Move The UIview
}
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
[textField resignFirstResponder];
//here call the method which move UIView to its actual position.
isNeedToMove= TRUE;
return YES;
}
我希望你能得到一些想法。
我也有这个烦恼。在keyboardWasShown中,Apple文档说:
if (!CGRectContainsPoint(aRect, activeField.frame.origin)
我用了:
if (activeField == myTextField)
这是答案的长版本:移动位于键盘下方的内容