Intereting Posts
Идентификатор устройства iOS APNS, не соответствующий идентификатору устройства Bookbook Отмена анимации iOS UIView не работает Означает ли ARC, что я должен объявлять статические типы, а не id? показать цвет фона в метке только до тех пор, пока текст Показать кнопку операции печати для печати с использованием SFSafariviewController Как установить галочку в ячейке таблицы на основе пользовательской настройки по умолчанию AVCaptureSession С STT (речь в текст) Приложение Video Surveliance, подключив DVR Как разместить UIImageView случайным образом по оси X и Y, но с линейным режимом? IP-Cam / CCTV-Cam Live Streaming на iPhone / iPad Область кликов по текстуре CTFrame iOS: записывает в Realm в swift 1.2 выберите вкладку по умолчанию в панели управления tabbar, прежде чем открывать ее при использовании раскадровки и segue Добавить текстовую метку на панель инструментов – Swift Приложение iOS для MonoTouch с Xcode

Автоматическая компоновка: ограничение, связанное с несколькими элементами

Например, я хочу, чтобы определенное текстовое поле было помещено под панелью навигации с расстоянием, равным четверти от общей высоты надзора. Это включает в себя три элемента: текстовое поле, верхний макет руководства и супервизор. Как можно создать такое ограничение, как в Interface Builder, так и при программировании?

Это невозможно сделать с одним ограничением. Вместо этого вам нужно создать дополнительный UIView над текстовым полем. Затем вы можете установить следующие противопоказания:

  1. 4 * extraView.height = containerView.height
  2. extraView.top = topLayoutGuide
  3. extraView.bottom = textField.top

Каждый раз, когда вам нужно что-то подобное, и вы не хотите использовать технику Бенджамина, используйте свойство мультипликатора ограничения ширины или высоты для супервизора.

То, как я это сделаю, это использовать ограничения с VisualFormat. Вот так:

 double quarterSuperViewHeight = superView.frame.size.height / 4; NSDictionary* metrics = NSDictionaryOfVariableBindings(quarterSuperViewHeight); NSDictionary* views = NSDictionaryOfVariableBindings(textField, navigationBar); [superView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[navigationBar]-quarterSuperViewHeight-[textField]" options:0 metrics:metrics: views:views]; 

Это должно установить расстояние между навигационной панелью и текстовым полем до четверти высоты супервизора. Теперь я не могу вспомнить, нужно ли повторять этот макет каждый раз, когда устройство вращается, но я не думаю, что вам нужно.