IOS - Использование раскадровки и автозапуска для центра UIScrollView
Я создаю приложение iOS, используя панель рассказов и автомат, чтобы она работала хорошо как на iPhone4, так и на iPhone5. Ниже приведен снимок экрана, который я создаю с помощью панели рассказов.
![enter image description here]()
В приведенном выше изображении я хочу сохранить прокрутку в середине от переднего края viewview и правого представления таблицы. Я не хочу, чтобы вид прокрутки увеличивал ширину в iPhone5. Я пробовал разные комбинации ограничений, но я не мог этого добиться.
Может кто-нибудь подскажет мне, каковы все ограничения, которые я должен установить для просмотра прокрутки, чтобы он был в центре.
Ответы
Ответ 1
Вам нужно будет сделать это, добавив дополнительный вид на экран.
На данный момент у вас есть...
- UIView (main view)
|
| - scrollView
| - tableView
Вы должны поместить вид прокрутки в другое представление, подобное этому...
- UIView (main view)
|
| - UIView (spacer View)
| | - scrollView
|
| - tableView
Теперь, что вы можете сделать, это эти ограничения...
spacer view leading edge constraint to super view = 0
spacer view trailing edge to table view leading edge = 0
table view width = (whatever the width is)
table view trailing edge to super view = 0
Это выведет вид спейсера и вид таблицы так, чтобы вид спейсера увеличивался.
Теперь вам нужно добавить...
scroll view width = x
scroll view height = y
scroll view centered vertically in super view
scroll view centered horizontally in super view.
Теперь, поскольку супер-просмотр прокрутки является пространственным представлением, он всегда будет находиться в центре между представлением таблицы и остальной частью пространства.
Ответ 2
Как центрировать просмотр на раскадровке
Этот ответ был обновлен для Xcode 8.
Этот ответ предназначен для людей, которые просто выполняют общий поиск того, как сосредоточить вещи, используя раскадровку, и не понимают ограничений.
Я предполагаю, что вы используете раскадровку (не файлы XIB) и автоматический макет. Это значение по умолчанию в настоящее время, поэтому, если вы не знаете, что это значит, не беспокойтесь об этом. Однако, если вы хотите проверить, вы можете нажать Main.storyboard в Навигаторе проектов, а затем на Инспектор файлов. Вы можете убедиться, что флажок Использовать автоматический макет:
![введите описание изображения здесь]()
Выберите свою кнопку (или любой другой вид, который хотите центрировать) на раскадровке. Затем нажмите кнопку выравнивания в правом нижнем углу. Выберите "Горизонтально в контейнере" и "Вертикально в контейнере". Нажмите "Добавить 2 ограничения".
![введите описание изображения здесь]()
Если бы он не был полностью центрирован, вам, возможно, понадобится сделать еще одну вещь. Нажмите кнопку "Обновить фреймы", расположенную в два раза слева от кнопки выравнивания. Теперь ваше мнение должно быть сосредоточено на раскадровке.
![введите описание изображения здесь]()
И что еще более важно, теперь, когда вы запускаете свое приложение, оно должно быть сосредоточено независимо от того, какой размер устройства вы используете.
Я изначально узнал об этом из Создание пользовательского интерфейса - Автоматический макет. Основная идея остается прежней, но теперь пользовательский интерфейс немного изменился в Xcode.
См. также