Вам необходимо настроить рамки текстовых представлений так, чтобы они соответствовали их размеру contentSize (см. Верхний ответ здесь: Как мне определить размер UITextView для его контента? о том, как это сделать, использует contentSizeсвойство textview), затем вы настраиваете contentSize scrollView на основе фреймов всех элементов управления.
Предполагая, что ваши текстовые представления располагаются последовательно вертикально (просто настройте код, если есть интервал и т. д.):
// (first adjust each text view's frame per the linked answer)
...
// then adjust the frames of the content
CGRect topTextViewFrame = topTextView.frame;
CGRect middleTextViewFrame = middleTextView.frame;
middleTextViewFrame.origin.y = topTextViewFrame.origin.y + topTextViewFrame.size.height;
middleTextView.frame = middleTextViewFrame;
CGRect bottomTextViewFrame = bottomTextView.frame;
bottomTextViewFrame.origin.y = middleTextViewFrame.origin.y + middleTextViewFrame.size.height;
// then adjust your other controls based on these frames, for example:
CGRect myButtonFrame = myButton.frame;
myButtonFrame.origin.y = bottomTextViewFrame.origin.y + bottomTextViewFrame.size.height;
// finally adjust the contentSize of the scrollview assuming the button is the bottom element
CGSize csize = myScrollView.contentSize;
csize.height = myButtonFrame.origin.y + myButtonFrame.size.height;
myScrollView.contentSize = csize;