0

我有一个 nsarray 的 textfields 和另一个 textarea。我还有一个带有下一个和上一个按钮的工具栏来管理我的字段之间的导航。我在 textfieldDidBeginEditing 中创建了一个函数,在 textfieldDidEndEditing 中创建了另一个函数,但它无法正常工作。我的功能是:

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

    [UIScrollView beginAnimations:nil context:NULL];

    [UIScrollView setAnimationDelegate:self];

    [UIScrollView setAnimationDuration:0.4];

    [UIScrollView setAnimationBeginsFromCurrentState:YES];

    CGFloat updatedY = 150;

    self.scrollView.frame = CGRectMake(self.scrollView.frame.origin.x,self.scrollView.frame.origin.y - updatedY, self.scrollView.frame.size.width,
                                       self.scrollView.frame.size.height);

    [UIScrollView commitAnimations];

}

任何帮助将不胜感激。

4

3 回答 3

1

我想你想要键盘处理程序。我正在使用的是一个非常好的键盘处理程序。

Sukhpal Singh 的键盘处理程序

这是我的一位好朋友的一个非常好的教程,你可以使用它。

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

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

是的,它完成了。

于 2013-05-01T07:43:56.170 回答
0

试试这个代码:

- (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];

}
于 2013-05-01T07:51:20.383 回答
0

请尝试使用这个

 - (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)];
}
于 2013-05-01T07:44:02.787 回答