0

私はここでいくつかの問題を抱えています。内部をタップするとキーボードで閉じられる UITextView があるので、ここでやろうとしているのは、TextView に何を書いているかを確認できる UIScrollView です...

これまでの私のコードは次のとおりです。

-(void)keyboardWillShow {
    if (self.view.frame.origin.y >= 0)
    {
        [self setViewMovedUp:YES];
    }
    else if (self.view.frame.origin.y < 0)
    {
        [self setViewMovedUp:NO];
    }
}

-(void)keyboardWillHide {
    if (self.view.frame.origin.y >= 0)
    {
        [self setViewMovedUp:YES];
    }
    else if (self.view.frame.origin.y < 0)
    {
        [self setViewMovedUp:NO];
    }
}

-(void)setViewMovedUp:(BOOL)movedUp
{
    [UIView animateWithDuration:.3 animations:^{
        CGRect rect = self.view.frame;
        if (movedUp)
        {
            scrollView.contentSize = CGSizeZero;
            scrollView.frame = CGRectMake(0, 80, 320, 308);
//            rect.origin.y -= kOFFSET_FOR_KEYBOARD;
//            rect.size.height += kOFFSET_FOR_KEYBOARD;
        }
        else
        {
            scrollView.contentSize = CGSizeZero;
            scrollView.frame = CGRectMake(0, 190, 320, 308);
//            rect.origin.y += kOFFSET_FOR_KEYBOARD;
//            rect.size.height -= kOFFSET_FOR_KEYBOARD;
        }
        self.view.frame = rect;
    }];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillShowNotification
                                                  object:nil];

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillHideNotification
                                                  object:nil];
}

問題は、コードが正しく機能していないことです。テキストビューをタップすると、上に行く代わりにビューが下に移動します...

何か案は?

4

2 に答える 2

0

私はすべての問題に対する答えを得ました!

- (void)textViewDidBeginEditing:(UITextView *)textView{

    [self scrollViewAsd:130];

}

- (void)textViewDidEndEditing:(UITextView *)textView{

    [self scrollViewAsd:0];

}

- (void)scrollViewAsd:(float) inset
{

    [UIView animateWithDuration:.3 animations:^{
        scrollView.contentInset = UIEdgeInsetsMake(0, 0, inset, 0);
        scrollView.contentOffset = CGPointMake(0, inset); 

    }];
}
于 2012-06-15T16:02:53.567 に答える
0

すでにスクロール ビューですUITextView。表示されている以上のテキストを入力すると、自動的にスクロールするはずです。また、ユーザーはいつでも自分でテキストをスクロールできます。

于 2012-06-15T08:27:59.973 に答える