Прости меня, если это уже ответили в другом месте, но я не мог найти нить об этом:Как установить UITextView в UIScrollView с AutoLayout
У меня есть VC со следующей иерархии:
Я хочу, чтобы мои элементы ContentView прокручивались в моем ScrollView. У меня много определений в textView, а некоторые более длинные, чем другие. Раньше прокручивались только более длинные определения, а более короткие - нет, но поскольку у меня был конфликт авто-макета, ссылки не могли быть нажаты в конце. У меня есть ScrollView, ограниченный представлением и ContentView, ограниченным ScrollView. У меня также есть ContentView с ограничениями equalWidth и equalHeight из основного представления. Для того, чтобы это решение работало, мне пришлось установить высоту ContentView примерно на 1000 pts, чтобы более длинные определения не были обрезаны. Единственная проблема заключается в том, что теперь все определения прокручиваются (даже те, которые не нужны), которые не имеют достаточного количества текста для перехода по экрану). И пользователь может прокручивать вниз и видеть достаточно свободного места для покрытия экрана, в зависимости от того, насколько кратким является определение.
Мой вопрос: как я могу организовать ограничения, чтобы более длинные определения прокручивались при необходимости, а более короткие - нет - как я могу установить ограничение динамически?
Благодаря
Спасибо, Арон. Да, это то, что я имею в виду; динамическое изменение размера содержимого. Вы сказали: «Предполагая, что ваши ограничения установлены правильно, contentSize вашего scrollView должен быть установлен с помощью автоматической компоновки ...» Я уверен, что все правильно подключено (нет проблем с автоматической компоновкой), и все это правильно изменяется на разных устройствах. Должно ли оно изменяться без явного свойства? Ручное изменение размера каждого текстового представления на самом деле не является решением для меня. – jdlace
@jdlace Я не имел ввиду, что вам нужно динамически размер каждого textView. Вам просто нужно получить высоту всего содержимого в contentView и установить ограничение по высоте на нем. Однако теперь, когда я подумал об этом, он должен быть проще: вы не должны ограничивать размер contentView для представления. Вместо этого вы должны ограничить нижнее и конечное пространство элементом LAST в вашем scrollView. Если все правильно ограничено в вашем представлении содержимого, тогда, когда размеры вашего текстового вида растут так, общий размер содержащего представления. –
Спасибо Арон.В настоящее время это мои ограничения: ScrollView (верхний, нижний, ведущий, конечный) в MainView. ContentView (верхний, нижний, верхний, конечный) для ScrollView AND equalWidth для MainView. Затем для textView в ContentView у меня есть (верхний, нижний, ведущий, конечный). Затем я устанавливаю свойство ограничения высоты с помощью self.textViewHeightConstraint.constant = [self.sourceInformation sizeThatFits: CGSizeMake (self.sourceInformation.frame.size.width, CGFLOAT_MAX)]. Height; Пока что у меня смешанные результаты; определенно изменяя размер динамически на основе текста, но все же не на 100%. Мысли? – jdlace