是否可以在搜索栏中更改取消按钮的垂直位置?

时间:2018-05-17 11:09:20

标签: ios swift uisearchbar ios11 uisearchcontroller

当我将应用程序从10到11 iOS SDK更新时,我将搜索栏从UIView移到了navigationItem UIViewController。 此外,我设置在UISearchBar中将背景图像定位为垂直偏移,因为徽标和searchBar之间的距离很小。

search is not active

searchBar.setSearchFieldBackgroundImage(searchFieldImage, for: .normal)
searchBar.searchFieldBackgroundPositionAdjustment = UIOffset(horizontal: 0, vertical: 4)

但是我无法将取消按钮定位在垂直方向上。如何设置UISearchBar中的取消按钮或按钮中的标题的垂直位置?

search is active

3 个答案:

答案 0 :(得分:1)

按如下方式访问取消按钮: -

UIBarButtonItem *cancelButton = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];

现在尝试更新cancelButton的框架(y轴)。

答案 1 :(得分:1)

let cancelButton = UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self])
let offset = UIOffset(horizontal: 0, vertical: 7)
cancelButton.setTitlePositionAdjustment(offset, for: .default)

另请参阅 apple doc here

答案 2 :(得分:0)

您可以增加搜索栏高度heightAnchor.constraint以增加导航栏高度以修复图片徽标问题,检查它

在IOS 11中

searchController.searchBar.heightAnchor.constraint(equalToConstant: 50).isActive = true