Установка ограничений программно

Я экспериментирую с тем, как использовать 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, Также есть несколькоUIViews и высота некоторых из этих видов превышает нормальную высоту экрана.

UITableViewController отображает список опций Основываясь на выборе пользователя, конкретныйUIView из лота будет загружен вUIViewController сUIScrollView.

В этом случае вышеуказанный метод не работает. Прокрутка не происходит. Нужно ли делать что-то другое, так как я загружаю представление отдельно?

Я загрузил демонстрационный проектВот так что вы можете увидеть это в действии. Пожалуйста, смотритеEmail.xib и выберитеЭлектронное письмо из списка просмотра таблицы.

Ответы на вопрос(4)

Ваш ответ на вопрос