Ваша проблема в том, что вы говорите newSize
, что он не может быть шире fixedWidth
, используя метод sizeThatFits(:)
.Если вы измените свой код, чтобы увеличить ширину, ваш textView будет расти горизонтально:
let fixedHeight = textView.frame.size.height
let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: fixedHeight))
textView.frame.size = newSize
Это позволяет рамке textView расти только горизонтально.Чтобы разрешить и то, и другое, вы можете попробовать что-то вроде этого:
let maxWidth = UIScreen.main.bounds.width - 20
let maxHeight = UIScreen.main.bounds.height - 20
let newSize = textView.sizeThatFits(CGSize(width: maxWidth, height: maxHeight))
textView.frame.size = newSize
textView.center = view.center
Это позволяет рамке расти вертикально и горизонтально, сохраняя textView по центру в родительском представлении и ограничивая размер textView размером с экран (с20 пт за границей).