Закрепление UIView в верхней части экрана программно - PullRequest
0 голосов
/ 02 мая 2020

Это может быть простой вопрос, но я изо всех сил пытаюсь найти ответ, который объясняет себя на inte rnet. Что такое быстрый эквивалент установки элемента "position: fixed" из CSS? Я пытаюсь прикрепить UIView к верхней части экрана, чтобы даже при прокрутке я все еще мог видеть вид в верхней части экрана. Спасибо за любые предложения или ссылки на учебники, спасибо!

edit: я, вероятно, должен был упомянуть, что мое представление изначально является подпредставлением моего viewController, а мой просмотр таблицы также является подпредставлением моего viewController, который находится под ним. Я использую какао-боб IQKeyboardManagerSwift, которое сдвигает весь вид вверх, включая мой заголовок.

Ответы [ 4 ]

1 голос
/ 02 мая 2020

Простой способ сделать это - использовать UITableView с заголовком. Заголовки табличного представления по умолчанию являются липкими. Здесь - ссылка на документацию.

0 голосов
/ 03 мая 2020

Нет необходимости в кадре в автоматическом макете, вы можете сделать это в viewDidLoad: сначала отключите ограничение по умолчанию для yourView:

yourView.translatesAutoresizingMaskIntoConstraints = false

после представления yourView в виде контроллера:

view.addSubview(yourView)

сейчас установите положение с автоматической разметкой в ​​верхней безопасной области вида вашего контроллера, ширина - это ширина представления, а высота равна 100, как пример вашего кадра в комментарии:

yourView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
yourView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
yourView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
yourView.heightAnchor.constraint(equalToConstant: 100).isActive = true

Это метод автоматической разметки, который нужно поместить yourView сверху ... Адаптируйте его к своему проекту, замените "yourView" названием представления, которое вы хотите поместить сверху. Для более точной информации введите код в приложении в следующий раз ... Хорошего дня:)

0 голосов
/ 03 мая 2020

Звучит так, будто вы хотите плавающий заголовок. Вы не можете добавить представление поверх collectionView или tableView, поэтому вы не сможете закрепить его без представления отдельного всплывающего окна с сквозными представлениями. Этот поповер должен быть отклонен, чтобы показывать оповещения или представлять другие контроллеры представления, поэтому, на мой взгляд, это нереальное решение.

Возможно, этот пост поможет вам (я подозреваю, что вы захотите стилизовать заголовок): Как сделать плавающий дополнительный вид в UICollectionView так же, как заголовки разделов в простом стиле UITableView

0 голосов
/ 02 мая 2020

Чтобы прикрепить вид к позиции, вы можете использовать Layout Anchors . Попробуйте:

yourView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true

Если вы хотите узнать больше об этом:

...