Это более важный комментарий
Ключ к пониманию того, почему ответ Витаминной воды работает, три вещи:
- Знайте, что UITextView является подклассом класса UIScrollView
- Понять, как работает ScrollView и как рассчитывается его contentSize. Подробнее см. Здесь ответ и его различные решения и комментарии.
- Понять, что такое contentSize и как его рассчитать. Смотрите здесь и здесь . Это также может помочь, что настройки
contentOffset
, скорее всего, ничего, кроме:
func setContentOffset(offset: CGPoint)
{
CGRect bounds = self.bounds
bounds.origin = offset
self.bounds = bounds
}
Для получения дополнительной информации см. Objc scrollview и понимание scrollview.
Комбинируя все три, вы легко поймете, что вам нужно позволить внутреннему контенту textView sizeView работать в соответствии с ограничениями AutoLayout textView для управления логикой. Это почти так, как будто вы textView работает как UILabel
Чтобы это произошло, вам нужно отключить прокрутку, что в основном означает размер scrollView, размер contentSize и, в случае добавления containerView, тогда размер containerView будет одинаковым. Когда они одинаковы, у вас нет прокрутки. И ты бы сделал . Наличие означает, что вы не прокручивали вниз. Даже 1 балл вниз! В результате textView будет растянут.0
contentOffset
0
contentOffSet
Это также ничего не стоит, что означает, что границы и рамка scrollView идентичны. Если вы прокрутите вниз на 5 пунктов, то ваш contentOffset будет , а ваш будет равен0
contentOffset
5
scrollView.bounds.origin.y - scrollView.frame.origin.y
5