我正在尝试一些设计,我希望所有子视图的边距都等于25px。 UISearchController
的{{1}}开箱即用,两侧都有16px的填充。我是否必须从头开始编写搜索栏文本字段,或者是否有任何方式(未记录,模糊或其他方式)来完成使本机栏偏移我的口味?
答案 0 :(得分:1)
如果您使用的是UISearchController
,则可以这样设置searchBar的边距(假设searchBar
是UISearchController
实例):
let directionalMargins = NSDirectionalEdgeInsets(top: 0, leading: 25, bottom: 0, trailing: 25)
searchController.searchBar.directionalLayoutMargins = directionalMargins
答案 1 :(得分:0)
编辑:另一种解决方案更好。
哇,这是一个棘手的问题!我终于找到了办法。
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 { }
}
}
然后在navigationItem.searchController
中使用CustomSearchController。 alignmentRectInsets
为负数,默认情况下继承自navigationItem -8。使用-17会使它偏离边缘25像素。