Я действительно сталкиваюсь с трудностями, чтобы сделать мой UIScrollView
полностью отзывчивым, используя только ограничения раскадровки.Рост содержимогоПросмотр UIScrollView на основе внутреннего содержимого с помощью раскадровки
Вот моя иерархия:
> - UIViewController
> - UIView
> - UIScrollView
> - contentView
> - module1View
> - module2View
> - module3View
Все модули используются для отображения графики. Я хочу, чтобы они были отзывчивыми. Я хочу, чтобы их ширина составляла 100% экрана, а их высота определяется отношением с использованием ограничения. Модули отображаются рядом друг с другом, как новости в ленте новостей.
Мой вопрос: Как вы устанавливаете высоту contentView
, равную сумме всех модулей (модуль 1 + 2 + 3)?
Другими словами я хочу добиться:
- Верх contentView = верхней части модуля 1
- Верх модуля 2 = Дно модуля 1
- Верх модуля 2 = Дно модуль 2
- Нижняя часть contentView = нижней части модуля 3
Чтобы это сделать, я следую некоторому учебнику, найденному в Интернете. Вот шаги, которые я затем:
- Установка
UIScrollView
контрсил для определения его места и положения. - Установка
UIScrollView
верхней, нижний, оставил и правильный интервал до ближайшего соседа . - Установка ограничение между модулями для «складывания» их одного на прочее.
- (я BLOCKED ЗДЕСЬ) Установка нижней части
contentView
к нижней части модуля 3, чтобы позволитьUIScrollview
для прокрутки до конца содержания.
Я попытался заставить высоту UIScrollView
: Он работает, но он не реагирует. Поскольку высота модуля рассчитывается через коэффициент, в зависимости от устройства, высота «модуль 1 + 2 + 3» изменяется при изменении.
Я попытался добавить ограничение от модуля 3 к contentView
, чтобы установить нижнюю часть модуля 3 = нижнюю часть contentView
. Все ограничения становятся красными с предупреждением повсюду.
У вас есть идея установить высоту contentView
на основе отзывчивого контента? (Например, «wrap-content»).
Заранее благодарим за помощь!
После того, как вы установите высоту модулей на основе их отношения, вы сможете рассчитать высоту для contentView –
Я попытался добавить: 'mainContentView.frame = CGRectMake (0, 0, self.view. width, module1View.height + module2View.height + module3View.height); 'в ViewDidLoad и viewWillAppear, ни один из них не работал –
, когда вы устанавливаете фрейм модулей? вам нужно установить кадр mainContentView после того, как установлены фреймы модулей ... какой тип объекта являются модулями? –