使文本字段以动画方式从上方显示iphone sdk
嗨,朋友,我使用的代码是使文本字段以动画方式从上方显示iphone sdk,iphone,iphone-sdk-3.0,uitextfield,Iphone,Iphone Sdk 3.0,Uitextfield,嗨,朋友,我使用的代码是 - (BOOL)textFieldShouldReturn:(UITextField *) sender { appDelegateObj.plogoImgView.hidden=NO; [sender resignFirstResponder]; if (verticalOffset!=0) { [self moveView: -verticalOffset]; verticalOffset = 0
- (BOOL)textFieldShouldReturn:(UITextField *) sender
{
appDelegateObj.plogoImgView.hidden=NO;
[sender resignFirstResponder];
if (verticalOffset!=0)
{
[self moveView: -verticalOffset];
verticalOffset = 0;
}
return TRUE;
}
- (void)textFieldDidBeginEditing:(UITextField *)theTextField
{
appDelegateObj.plogoImgView.hidden=YES;
int wantedOffset;
if(theTextField.tag==10)
wantedOffset = theTextField.frame.origin.y - 50;
else
{
wantedOffset = theTextField.frame.origin.y - 150;
}
if ( wantedOffset < 0 )
{
wantedOffset = 0;
}
if ( wantedOffset != verticalOffset )
{
[self moveView: wantedOffset - verticalOffset];
verticalOffset = wantedOffset;
}
}
- (void)moveView:(int)offset
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
rect.origin.y -= offset;
self.view.frame = rect;
[UIView commitAnimations];
}
我的问题是上面的代码正在工作,但在设备中,每当视图出现时,方法称为“它不工作”,如何写入视图将出现,请告诉我
提前谢谢。我并没有从你的问题中完全了解,但我会试一试 所以你说: 问题是上面的代码正在工作,但在设备中,每当视图出现时,称为“它不工作”的方法将出现如何写入视图,请告诉我 你是说代码在你看到的某个教程中运行,还是在你的模拟器中运行,而不是在设备上 有些动画代码可以在模拟器中工作,但不能在设备上工作,这对我来说似乎很奇怪,所以这不应该是问题所在 你说的是ViewWill似乎没有被调用,你使用的是导航控制器吗?在基于导航控制器的应用程序中,不会调用viewWillAppear方法 您用来显示和隐藏所需键盘的方法也有点奇怪,您在中谈到设置UITextField的动画,但您正在移动整个视图 为什么不为所需的textfield创建一个属性或至少创建一个实例变量,这样就可以通过任何方法对该textfield进行寻址,从而使其进入/退出动画 如果您使用的是nivation控制器: 创建一个方法并将其称为moveTextFieldIn,然后在上一个viewController中,您可能会有如下内容:
UIViewController * nextViewController = [[UIViewController alloc] init];
[[self navigationController] pushViewController:nextViewController animated:YES];
[nextViewController release];
将其更改为:
UIViewController * nextViewController = [[UIViewController alloc] init];
[nextViewController moveTextFieldIn];
[[self navigationController] pushViewController:nextViewController animated:YES];
[nextViewController release];
如果您没有创建moveTextFieldIn,请执行以下操作:
UIViewController * nextViewController = [[UIViewController alloc] init];
[nextViewController viewWillAppear];
[[self navigationController] pushViewController:nextViewController animated:YES];
[nextViewController release];
好吧,有很多猜测,但我希望这会对你有所帮助
还有一件事:
标准动画持续时间为0.3,因此可以删除该行代码,保持其干净-