我正在将导航栏和搜索栏都设置为自定义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"
}

下面是我运行模拟时看到的图片:
swift - 清除导航栏和searchBar swift 4之间的边界-LMLPHP

最佳答案

使用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/

10-12 00:29