Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在uiscrollview上的多个textfield和textarea之间滚动?_Iphone - Fatal编程技术网

Iphone 如何在uiscrollview上的多个textfield和textarea之间滚动?

Iphone 如何在uiscrollview上的多个textfield和textarea之间滚动?,iphone,Iphone,我有一排textfields和另一排textarea。我还有一个带有“下一步”和“上一步”按钮的工具栏,用于管理字段之间的导航。我在textfieldDidBeginEditing和TextFieldDidDendediting中分别做了一个和另一个操作,但都没有正常工作。 我的职能是: if(textField.frame.origin.y>180){ 任何帮助都将不胜感激。我想您需要键盘处理程序。我使用的是一个非常好的键盘处理程序 这是一个非常好的教程,来自我的一个好朋友,你可以使用这个

我有一排textfields和另一排textarea。我还有一个带有“下一步”和“上一步”按钮的工具栏,用于管理字段之间的导航。我在textfieldDidBeginEditing和TextFieldDidDendediting中分别做了一个和另一个操作,但都没有正常工作。 我的职能是:

if(textField.frame.origin.y>180){


任何帮助都将不胜感激。

我想您需要键盘处理程序。我使用的是一个非常好的键盘处理程序

这是一个非常好的教程,来自我的一个好朋友,你可以使用这个

要使用它,您只需编写一行代码

 AutoScroller * scroller=[AutoScroller addAutoScrollTo:self.scrollView isDoneToolBarNeeded:NO];

是的,完成了。

请试着用这个

 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView
 {
      [UIView beginAnimations:@"" context:nil];
      [UIView setAnimationDuration:.30];

      [self scrollViewToCenterOfScreen:textView];

      [UIView commitAnimations];
      return YES;
 }


- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
      [UIView beginAnimations:@"" context:nil];
      [UIView setAnimationDuration:.30];

      [self scrollViewToCenterOfScreen:textField];

      [UIView commitAnimations];

      return YES;

}


- (void)scrollViewToCenterOfScreen:(UIView *)theView
{
    CGFloat y ;
    CGFloat viewCenterY = theView.center.y;

    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];

    CGFloat avaliableHeight = applicationFrame.size.height - 250;

    y = viewCenterY - avaliableHeight / 2.0f;

    if (y < 0)
    {
        y = 0;
    }
    [scrollView setContentOffset:CGPointMake(0, y)];
}
-(BOOL)文本视图应开始编辑:(UITextView*)文本视图
{
[UIView beginAnimations:@”“上下文:无];
[UIView setAnimationDuration:.30];
[自滚动查看屏幕:文本视图];
[UIView委员会];
返回YES;
}
-(BOOL)textField应该开始编辑:(UITextField*)textField
{
[UIView beginAnimations:@”“上下文:无];
[UIView setAnimationDuration:.30];
[自滚动查看屏幕:文本字段];
[UIView委员会];
返回YES;
}
-(无效)滚动视图至EnterofScreen:(UIView*)视图
{
CGY;
CGFloat viewCenterY=视图中心y;
CGRect applicationFrame=[[UIScreen mainScreen]applicationFrame];
CGFloat AVALEABLEHITH=applicationFrame.size.height-250;
y=viewCenterY-可用灯光/2.0f;
if(y<0)
{
y=0;
}
[scrollView setContentOffset:CGPointMake(0,y)];
}
尝试以下代码:

- (void)textFieldDidBeginEditing:(UITextField *)textField;
{


        [clientscrollview setContentOffset:CGPointMake(0, textField.center.y-180) animated:YES];



}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [clientscrollview setContentOffset:CGPointMake(0, 0) animated:YES];
    [textField resignFirstResponder];
    return YES;
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{

        [clientscrollview setContentOffset:CGPointMake(0,textView.center.y-180) animated:YES];



}
- (void)textViewDidEndEditing:(UITextView *)textView
{
    [clientscrollview resignFirstResponder];
    [clientscrollview setContentOffset:CGPointMake(0,0) animated:YES];

}

此外,如果这解决了您的问题,请将其标记为答案。并帮助社区解决其他问题。感谢Avtar的帮助,但il似乎只有在没有ISDONETOOLBARNEED的情况下,此方法才有效,我希望使用我自己的工具栏和上一个和下一个选项否,它也可以与“完成”工具栏一起使用。[AutoScroller添加AutoScrollTo:self.scrollView IsDoneToolBarneed:Yes]。但是,是的,它会在键盘上方添加一个带有“完成”按钮的工具栏作为输入附件视图,单击“完成”按钮后,键盘将隐藏。如果您想添加自己的工具栏,恐怕此方法对您没有用,因为它会处理键盘返回键上的所有代理。我认为您不需要下一个和上一个k谢谢Dharmbir,你的解决方案在纵向模式下效果很好,但在横向模式下效果不好。欢迎你,亲爱的。是的,它只适用于纵向模式。哪一个答案是可以接受的,亲爱的。你已经接受了科蒂的答案。如果你得到了答案,请接受我的答案。
- (void)textFieldDidBeginEditing:(UITextField *)textField;
{


        [clientscrollview setContentOffset:CGPointMake(0, textField.center.y-180) animated:YES];



}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [clientscrollview setContentOffset:CGPointMake(0, 0) animated:YES];
    [textField resignFirstResponder];
    return YES;
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{

        [clientscrollview setContentOffset:CGPointMake(0,textView.center.y-180) animated:YES];



}
- (void)textViewDidEndEditing:(UITextView *)textView
{
    [clientscrollview resignFirstResponder];
    [clientscrollview setContentOffset:CGPointMake(0,0) animated:YES];

}