2014-08-18 2 views
1

i'm с помощью autolayout и следовали инструкции из этого руководства:Autolayout: Неправильная ширина при использовании Scrollview

http://www.g8production.com/post/57513133020/auto-layout-with-uiscrollview-how-to-use

Я строй моего взгляда с XIb File и Interface Builder. Это мое дерево:

-UIView

--UIScrollView

--- UIView (ContentView)

---- подвиды

Проблема заключается в том, что, когда я только положить ОДИН! Subview (UIImageView) внутри ContentView и установите Left, Top и Right Constraint в Subview, я получаю предупреждение, в котором говорится: Autolayout ожидает ширину 1000! У меня нет идеи, почему она так разбита. Все мои представления имеют ширину 320 пикселей, поэтому это не могло быть проблемой. Вот некоторые скриншоты, которые могут помочь:

enter image description here

enter image description here

ответ

2

UIImageView.image.size.width 1000 в вашем случае. Таким образом, он соответствует собственному внутреннему размеру контента и расширяется по своему собственному размеру собственного контента. Вы можете следить за один из метода так решить эту проблему:

Способ 1: - Добавить width ограничение contentView, поэтому UIImageView будет принимать ширину contentView.

Способ 2: - Добавить width ограничение UIImageView, поэтому contentView примет ширину UIImageView.

Способ 3: - Добавить Equal Width ограничение на ваш контентView и UIScrollView. поэтому contentView примет ширину scrollView, а UIImageView примет ширину contentView.

Вы можете получить более подробную информацию здесь о contents intrinsic content size: http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

1

Проверьте каждый из ограничений и проверить значение его параметра constant, и убедитесь, что они 0 или все, что вы ожидали. Интерфейс Builder имеет раздражающую привычку брать размер, который был на холсте, когда вы создаете ограничение.

+0

Я проверил все, но правильно ... действительно странно -_- – Davis

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