Swift:自定义搜索栏布局问题

时间:2018-04-02 08:09:20

标签: swift uisearchbar uisearchcontroller

我尝试使用此link更新我的搜索栏,但我的角色布局问题很奇怪。我目前的情况是这样的: enter image description here

我想删除深灰色的角落。 我正在使用的代码是:



        if #available(iOS 11.0, *) {
            let searchBar = searchController.searchBar
            if let textfield = searchBar.value(forKey: "searchField") as? UITextField {
                
                if let backgroundview = textfield.subviews.first {
                    
                    // Rounded corner
                    backgroundview.layer.cornerRadius = 2;
                    backgroundview.clipsToBounds = true;
                    
                    // Background color
                    backgroundview.backgroundColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.12)

                    //glass icon colour
                    if let glassIconView = textfield.leftView as? UIImageView{
                        glassIconView.image = glassIconView.image?.withRenderingMode(.alwaysTemplate)
                        glassIconView.tintColor = UIColor.white
                    }
                    
                    // Clear Button Customization
                    if let clearButton = textfield.value(forKey: "clearButton") as? UIButton {
                        clearButton.setImage(clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate), for: .normal)
                        clearButton.tintColor = UIColor.white
                    }
                }
            }
            
            navigationItem.searchController = searchController
            navigationItem.hidesSearchBarWhenScrolling = false
        } else {
            
            tableView.tableHeaderView = searchController.searchBar
        }




请指出我的方法中的错误。这是最基本项目的link

2 个答案:

答案 0 :(得分:0)

修改

问题在于cornerRadius为2。 搜索栏应用cornerRadius为10,因此您可以看到栏的基础背景。

将backgroundView cornerRadius设置为10并且你很好

backgroundview.layer.cornerRadius = 10

答案 1 :(得分:0)

问题是backgroundview.backgroundColor。尝试将alpha设置为1.0,如果设置alpha<则不正确1.0

backgroundview.backgroundColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.12)

你可以使用浅灰色,它似乎你想要浅灰色。

backgroundview.backgroundColor = UIColor.lightGray