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