Я экспериментирую с тем, как использовать UIScrollView. После долгих хлопот я, наконец, разобрался. Но теперь я, кажется, попал в другую загвоздку.
В этом простом приложении у меня есть представление прокрутки, и для того, чтобы оно работало, я должен установить нижнее пространство представления для ограничения прокрутки на 0, как описано здесь и все работает. Я делаю это через ИБ.
Теперь я столкнулся со сценарием, в котором я должен сделать эту часть программно. Я добавил приведенный ниже код в метод viewDidLoad
.
NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.scrollView
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:0.0];
[self.view addConstraint:bottomSpaceConstraint];
Но, похоже, это не работает. Он выводит следующее сообщение в окно консоли, и я не знаю, что с этим делать.
Невозможно одновременно удовлетворить ограничения. Вероятно, по крайней мере одно из ограничений в следующем списке вам не нужно. Попробуйте следующее: (1) посмотрите на каждое ограничение и попытайтесь выяснить, чего вы не ожидаете; (2) найти код, который добавил нежелательное ограничение или ограничения, и исправить его. (Примечание. Если вы видите NSAutoresizingMaskLayoutConstraints, которые не понимаете, обратитесь к документации по свойству UIView translatesAutoresizingMaskIntoConstraints) ( "", "" )
Может кто-нибудь, пожалуйста, скажите мне, как это сделать? Я также прикрепил демонстрационный проект здесь, чтобы вы могли лучше понять по вопросу.
ОБНОВЛЕНИЕ:
Прежде всего спасибо за ответы. Используя способы, упомянутые в ответах, я смог заставить его работать. Однако в немного другом сценарии это не так. Теперь я пытаюсь загрузить представление на контроллер представления программно.
Если я могу объяснить дальше. Есть 2 контроллера представления. Первый - UITableViewController
, второй - UIViewController
. Внутри этого UIScrollView
. Также есть несколько UIView
, и высота некоторых из этих представлений превышает нормальную высоту экрана.
UITableViewController
отображает список параметров. В зависимости от выбора пользователя конкретный UIView
из лота будет загружен в UIViewController
с UIScrollView
.
В этом случае описанный выше метод не работает. Прокрутка не происходит. Должен ли я делать что-то другое, так как я загружаю представление отдельно?
Я загрузил демонстрационный проект здесь, чтобы вы могли увидеть его в действии. См. Email.xib
и выберите Электронная почта в списке просмотра таблицы.