How to make an UITextView scrollable when the keyboard appears?

后端 未结 2 1588
忘掉有多难
忘掉有多难 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:31

    You can reduce sizeOf you textView on keyBoard appear

    -(void)textViewDidBeginEditing:(UITextView *)textView
    {
        CGRect frame = txtAddNote.frame;
        frame.size.height = 150; //Decrease your textView height at this time
        txtAddNote.frame = frame;
    }
    -(IBAction)DoneBarBtnPress:(id)sender
    {
        CGRect frame = txtAddNote.frame;
        frame.size.height = 212; //Original Size of textView
        txtAddNote.frame = frame;
    
        //Keyboard dismiss 
        [self.view endEditing:YES];
    }
    
    0 讨论(0)
  • 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];
        }
    
    0 讨论(0)
提交回复
热议问题