Настройте вставки панели поиска UISearchController - PullRequest
0 голосов
/ 19 мая 2019

Я пробую некоторые проекты, и я хотел бы иметь равный запас в 25px для всех моих подпредставлений.UISearchController s searchBar имеет отступ 16 пикселей с обеих сторон из коробки.Нужно ли писать текстовое поле в строке поиска с нуля, или есть ЛЮБОЙ способ, недокументированный, извращенный или каким-либо другим образом, чтобы выполнить смещение нативного бара на мой вкус?

enter image description here

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Если вы используете UISearchController, вы можете установить поля строки поиска следующим образом (при условии, что searchBar - это UISearchController экземпляр):

let directionalMargins = NSDirectionalEdgeInsets(top: 0, leading: 25, bottom: 0, trailing: 25)
searchController.searchBar.directionalLayoutMargins = directionalMargins
0 голосов
/ 20 мая 2019

Редактировать: другое решение лучше.

Вот так, это было сложно!Я наконец нашел способ.

class CustomSearchBar: UISearchBar {

    override var alignmentRectInsets: UIEdgeInsets {
        return UIEdgeInsets(top: 0, left: -17, bottom: 0, right: -17)
    }
}

class CustomSearchController: UISearchController {

    lazy var customSearchBar = CustomSearchBar()

    override var searchBar: UISearchBar {
        get {
            return customSearchBar
        }
        set { }
    }
}

Затем используйте CustomSearchController в вашем navigationItem.searchController.alignmentRectInsets является отрицательным и по умолчанию наследует -8 от элемента навигации.Использование -17 приводит к смещению в 25 пикселей от краев.

?

...