如何在 swift 中拉伸标题视图?
How to stretch title view in swift?
我为 UINavigationItem 创建了自定义标题视图。
我想要自定义视图拉伸到右填充。
我能做什么??
我尝试将 rightBarButtonItem 设置为 nil。
不过好像没办法。
并且不要拉伸到左后退按钮区域。
override func viewDidLoad() {
super.viewDidLoad()
let searchBar = CustomSearchBar()
searchBar.autoresizingMask = .flexibleWidth
searchBar.frame = CGRect(x: 0, y: 0, width: 400, height: 30)
self.navigationItem.titleView = searchBar
self.navigationItem.rightBarButtonItem = UIBarButtonItem()
}
查看我的结果。我要红色区域
在您的 CustomSearchBar 中尝试以下操作 class:
override var intrinsicContentSize: CGSize {
return UILayoutFittingExpandedSize
}
let searchBar = CustomSearchBar()
searchBar.translatesAutoresizingMaskIntoConstraints = false
self.navigationItem.titleView = searchBar
searchBar.heightAnchor.constraint(equalToConstant: 30.0).isActive = true
searchBar.rightAnchor.constraint(equalTo: self.navigationController!.navigationBar.rightAnchor).isActive = true
searchBar.leftAnchor.constraint(equalTo: self.navigationController!.navigationBar.centerXAnchor).isActive = true
以上代码对我有用。如果不需要 center
中的栏,可以删除 left anchor
。我还将 translatesAutoresizingMaskIntoConstraints
设置为 false
,我希望这有效。
我为 UINavigationItem 创建了自定义标题视图。
我想要自定义视图拉伸到右填充。
我能做什么??
我尝试将 rightBarButtonItem 设置为 nil。
不过好像没办法。
并且不要拉伸到左后退按钮区域。
override func viewDidLoad() {
super.viewDidLoad()
let searchBar = CustomSearchBar()
searchBar.autoresizingMask = .flexibleWidth
searchBar.frame = CGRect(x: 0, y: 0, width: 400, height: 30)
self.navigationItem.titleView = searchBar
self.navigationItem.rightBarButtonItem = UIBarButtonItem()
}
查看我的结果。我要红色区域
在您的 CustomSearchBar 中尝试以下操作 class:
override var intrinsicContentSize: CGSize {
return UILayoutFittingExpandedSize
}
let searchBar = CustomSearchBar()
searchBar.translatesAutoresizingMaskIntoConstraints = false
self.navigationItem.titleView = searchBar
searchBar.heightAnchor.constraint(equalToConstant: 30.0).isActive = true
searchBar.rightAnchor.constraint(equalTo: self.navigationController!.navigationBar.rightAnchor).isActive = true
searchBar.leftAnchor.constraint(equalTo: self.navigationController!.navigationBar.centerXAnchor).isActive = true
以上代码对我有用。如果不需要 center
中的栏,可以删除 left anchor
。我还将 translatesAutoresizingMaskIntoConstraints
设置为 false
,我希望这有效。