Установка ограничений программно
Я экспериментирую с тем, как использовать UIScrollView. После долгих хлопот я наконец-то это понял. Но теперь я, кажется, попал в другую загадку.
В этом простом приложении у меня есть представление прокрутки, и для того, чтобы оно работало, я должен установить для нижнего пространства представления ограничение прокрутки до 0, как описаноВот и работает нормально. Я делаю это через IB.
Теперь я столкнулся со сценарием, в котором я должен выполнить эту часть программно. Я добавил следующий код в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) ("", "")
Может кто-нибудь сказать, пожалуйста, как это сделать? Я также приложил демонстрационный проектВот так что вы можете получить лучшее представление по этому вопросу.
ОБНОВИТЬ:
Прежде всего, спасибо за ответы. Используя способы, упомянутые в ответах, я смог заставить его работать. Однако в немного другом сценарии его нет. Теперь я пытаюсь загрузить представление на viewcontroller программно.
Если я могу объяснить дальше. Есть 2 вида контроллеров. Первый будучиUITableViewController
а второйUIViewController
, Внутри этогоUIScrollView
, Также есть несколькоUIView
s и высота некоторых из этих видов превышает нормальную высоту экрана.
UITableViewController
отображает список опций Основываясь на выборе пользователя, конкретныйUIView
из лота будет загружен вUIViewController
сUIScrollView
.
В этом случае вышеуказанный метод не работает. Прокрутка не происходит. Нужно ли делать что-то другое, так как я загружаю представление отдельно?
Я загрузил демонстрационный проектВот так что вы можете увидеть это в действии. Пожалуйста, смотритеEmail.xib
и выберитеЭлектронное письмо из списка просмотра таблицы.