UIView (помещен внутри scrollview) не показывает свои подпредставления, когда его постоянная высоты была изменена программно - PullRequest
0 голосов
/ 24 ноября 2018

Я сделал следующее расположение в моем 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;

Есть ли способ, чтобы подпредставления были видны после программного изменения постоянной высоты.

enter image description here

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

после настройки размера UILabel, то есть его высоты, попробуйте вызвать метод layoutIfNeeded () или layoutSubviews ()

0 голосов
/ 24 ноября 2018

На мой взгляд, вы должны использовать UITableView вместо ScrollView.Потому что этот вид пользовательского интерфейса легко обрабатывать с помощью tableView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...