我正在将导航栏和搜索栏都设置为自定义UIColor(在代码中称为categoryColor)。当我这样做时,我仍然看到导航栏和搜索栏之间的一条上灰线。我已经将搜索栏边框颜色设置为与其他颜色相同,但灰色线仍然存在。有人知道怎么摆脱它吗?
这是我的代码:
override func viewWillAppear(_ animated: Bool) {
//defining the color that will be used for all the items
let categoryColor = UIColor(hexString: selectCategory?.categoryColorHex ?? UIColor.randomFlat.hexValue())
//changing navigation bar tint color
navigationController?.navigationBar.barTintColor = categoryColor
//changing searchbar tint color
searchBar.barTintColor = categoryColor
//change searchBar border's color
searchBar.layer.borderColor = categoryColor?.cgColor
searchBar.layer.borderWidth = 3
//changing title that appears at the top, after list is loaded
title = selectCategory?.listName ?? "Todoey"
}
下面是我运行模拟时看到的图片:
最佳答案
使用nav controller实现搜索栏的更好方法是在navigationController中使用searchController,这样searchController将具有与navigationController相同的背景。这里有一个很棒的教程:https://m.youtube.com/watch?v=h7caxpp3Xps
编辑:
另外,如果您已经实现了搜索功能,那么也可以使用searchController来实现。只需为负责处理委托方法的类设置navigationController.searchConroller.searchBar.delegate
关于swift - 清除导航栏和searchBar swift 4之间的边界,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53676498/