How to make an UITextView scrollable when the keyboard appears?

后端 未结 2 1592
忘掉有多难
忘掉有多难 2021-01-26 13:49

I would like to know how I can make my UITextView scrollable when it\'s being edited ? When the user wants to edit it, the keyboard shows but then the UITextV

2条回答
  •  面向向阳花
    2021-01-26 14:42

    just scroll the view when UITextView begin edit like this..

    -(void)textViewDidBeginEditing:(UITextView *)textView
    {
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.3];
        self.view.frame = CGRectMake(self.view.frame.origin.x, -160, self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];
    
    }
    

    and in endEditing just set Default screen like bellow..

    -(void)textViewDidEndEditing:(UITextView *)textView
    {
        [textView resignFirstResponder];
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];
    }
    

    UPDATE

    Here with your requirement we set the frame with our view see bellow code

    -(void)textViewDidBeginEditing:(UITextView *)textView
        {
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:0.3];
             [yourTextView setFrame:CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y,self.view.‌​frame.size.width,self.view.frame.size.height - 160)];
            [UIView commitAnimations];
    
        }
    
    -(void)textViewDidEndEditing:(UITextView *)textView
        {
            [textView resignFirstResponder];
            [UIView beginAnimations:nil context:NULL];
            [UIView setAnimationDuration:0.3];
            [yourTextView setFrame:self.view];
            [UIView commitAnimations];
        }
    

提交回复
热议问题