J'ai ajouté une barre de search à ma navigation.titleView
self.navigationItem.titleView = searchBar
Il y a aussi un BackBarButtonItem avec title = ""
self.navigationItem.backBarButtonItem?.title = ""
Mais il y a un écart entre Back Button
et SearchBar
, comme ceci:
Je pense que l'écart apparaît ici car il y a un espace pour le title
de backBarButtonItem
(parce que mon title
est null "" mais l'espace est toujours là)
Donc, je veux requestr comment omettre cet écart? Je veux rendre ma searchBar
plus proche de mon backBarIcon
Merci beaucoup!
EDIT 1: J'essaie de changer le cadre de searchBar mais ça ne marche pas
C'est mon code
//Change searchBar's frame let titleViewFrame = (searchController.searchBar.frame) searchController.searchBar.frame = CGRect(x: titleViewFrame.minX - 20.0, y: titleViewFrame.minY, width: titleViewFrame.width + 20.0, height: titleViewFrame.height)
override func viewDidLoad() { super.viewDidLoad() let container = UIView(frame: CGRect(x: 0, y: 0, width: 1000, height: 22)) let searchBar = UISearchBar() searchBar.translatesAutoresizingMaskIntoConstraints = false container.addSubview(searchBar) let leftButtonWidth: CGFloat = 35 // left padding let rightButtonWidth: CGFloat = 75 // right padding let width = view.frame.width - leftButtonWidth - rightButtonWidth let offset = (rightButtonWidth - leftButtonWidth) / 2 NSLayoutConstraint.activate([ searchBar.topAnchor.constraint(equalTo: container.topAnchor), searchBar.bottomAnchor.constraint(equalTo: container.bottomAnchor), searchBar.centerXAnchor.constraint(equalTo: container.centerXAnchor, constant: -offset), searchBar.widthAnchor.constraint(equalToConstant: width) ]) self.navigationItem.titleView = container }
Vous ne pouvez pas faire cela, il y a un espace par défaut donné que nous ne pouvons pas changer si nous avons le button return.
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil) self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "back") self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "back") self.navigationController?.navigationBar.tintColor = UIColor.lightGray
Voici la capture d'écran