UITextView contentInset default animation

I have this code to adjust UITextView when keyboard is about to be displayed.

@objc func keyboardWillShow(notification: NSNotification) {
  if let rectValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
    let keyboardSize = rectValue.cgRectValue.size
      
      let contentInsets: UIEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height - view.safeAreaInsets.bottom, right: 0)
      
      textView.contentInset = contentInsets
      textView.scrollIndicatorInsets = contentInsets
     
  }
} 

I see setting contentInset automatically creates a scrolling animation (after the keyboard appears fully) that makes the text at the cursor visible. The animation happens automatically and there is no way to disable it. I want to scroll to a given location in the textView sometimes when the keyboard is presented (preferably, animating it along with keyboard appearance). The implicit contentInset animation makes it impossible however. First the keyboard animates, then contentInset animates, and now only can I animate to my chosen location in textView. This is awkward. I am wondering what is the right way to achieve it?

UITextView contentInset default animation
 
 
Q