Я сделал следующее расположение в моем xib-файле.
--> UIScrollView (top-0, leading-0, trailing-0, bottom-0) to SafeView
-----> Container_UIView (top-0, leading-0, trailing-0, bottom-0, equal height - priority 250, equal width) to UIScrollview
---------> First_UIView (top-0, leading-0, trailing-0, height - 250) to Container_UIView and (vertical spacing- 0 ) to Second_UIView
---------> Second_UIView (leading-0, trailing-0, bottom - 0) to Container_UIView and (vertical spacing- 0 ) to First_UIView
------------> UIlabel (top-0, leading-0, trailing-0) to Second_UIView and (vertical spacing - 0) to Button
------------> Button ( leading-0, trailing-0, bottom - 0, height - 50) to Second_UIView and (vertical spacing - 0) to UIlabel
Я сделал UIlabel
с динамической высотой.Я изменил высоту Second_View
программно.Высота была изменена, но подпредставления не отображались, был виден только чистый цветной фон, как на рисунке ниже.На рисунке левая сторона - отладочная, а правая - от симулятора.Представление отладки показывает, что есть подпредставления, но симулятор не показывает эти подпредставления.Я выделил подпредставления красной меткой на рисунке.На рисунке изображение является фоном, метка находится внутри Second_View, а container_uiview имеет чистый цвет.В viewcontroller я изменил высоту, используя следующий код:
CGRect contentRect = CGRectZero;
for (UIView *view in self.Second_View.subviews)
if (!view.hidden)
contentRect = CGRectUnion(contentRect, view.frame);
self.Second_ViewHeight.constant = contentRect.size.height;
Есть ли способ, чтобы подпредставления были видны после программного изменения постоянной высоты.