2015-09-04 5 views
1

Я столкнулся с проблемой автоопределения и не могу найти ответ на то, что должно быть простым в достижении.UIScrollView, Autolayout и subviews

У меня есть следующие иерархии Вид:

-UIScrollview 
    -UIView 
    - UILabel 
    - UILabel 
    - UILabel 

Ведущие/конечные ограничения на этикетках делает их выше на более тонких устройств (IPhone 4S против iPhone 6).

Для того, чтобы UIScrollview работал правильно, мне нужно установить ограничение высоты UIView внутри UIScrollView, чтобы избежать предупреждения «двусмысленной высоты».

Но при работе на iPhone 4s UIView не достаточно высок, чтобы удерживать его подпункты.

Мое единственное решение до сих пор создать ссылку на высоте ограничение на UIView и обновить ограничение высоты, когда появляется вид:

-(void)viewDidAppear:(BOOL)animated{ 
[super viewDidAppear:animated]; 
    self.contentHeight.constant =self.lastLabel.frame.origin.y+ self.lastLabel.frame.size.height; 
    [self.view layoutIfNeeded]; 
} 

Я думаю, что должен быть лучший способ сделать то, что так просто.

Я добавил изображение, чтобы подробно показать проблему.

Спасибо за ваше время.

enter image description here

Per @Katty ниже, что делает ширину/высоту, равную результатам SuperView в Scrollview в в больших вопросах:

enter image description here

ответ

1

Иерархия зрения вы используете right.Basically то, что вы необходимо сделать это в вашем представлении вашего ребенка (который находится внутри Scrollview), вам нужно выровнять авто макет wrt верхний, нижний, ведущий и завершающий scrollview, и вам нужно предоставить равную высоту вашему представлению вашего ребенка, которые в основном вычисляют размер содержимого для scrollview.

+0

Какой должна быть равная высота? UIView »UIScrollView? Это предотвращает прокрутку, не так ли? –

+0

ограничения для scrollview должны быть выровнены сверху, ведущей, задней и нижней надстройками и ограничениями дочернего представления, должны быть применены выровненные верхние, ведущие, конечные и нижние символы scrollview и должны указывать высоту, равную childview. (Например, если его 1200px , это должно быть исправлено) –

+0

Вот что я делаю прямо сейчас.UIView: 0, trailing: 0, top: 0, bottom: 0, equalWidth to ScrollView, высота: 540 (исправлено) –

1

Набор Скользящий передней верхней Bottom По отношению к UIScrollView и высоты, и с обеих Фикс Сета с отношением Предложение с основным видом

Первый сет равной высоты и ширины затем установить предложение мультипликатора. Hop это изображение поможет вам понять, что я пытаюсь вам объяснить.

Here is the image that will help to understand

+0

Это, похоже, делает проблему еще хуже, см. Скриншот, добавленный в мой первоначальный пост. –

+0

, если вы хотите установить серый вид, тогда установите subview с пропорциональной высотой. – Kavita

0

Ознакомившись с другим разработчиком я обнаружил проблему. Нижняя часть в контейнере нуждается в нижнем ограничении. Это определило проблему.

Спасибо всем, кто нашел время, чтобы помочь решить проблему.

enter image description here

Смежные вопросы