如何使搜索栏的颜色变为蓝色?
我试过了:
searchBar.opaque = true
也
searchBar.translucent = false
但这行不通。为什么?
从文档开始 .opaque
var opaque:布尔{获取设置}
一个布尔值,用于确定视图是否不透明。
...
您只需要为使用drawRect:方法绘制自己内容的UIView子类的opaque属性设置一个值。opaque属性对系统提供的类(如UIButton,UILabel,UITableViewCell等)无效。
因此,.opaque属性不会对本机UISearchBar产生任何影响。因此,在上面的示例中,此命令searchBar.opaque
无效。
关于.translucent
属性,文档指出:
var半透明:Bool {获取设置}
一个布尔值,指示搜索栏是半透明(true)还是不是半透明(false)。
默认值是true。如果搜索栏具有自定义背景图片,则如果图片的任何像素的alpha值小于1.0,则默认值为true,否则为false。
如果在具有不透明自定义背景图像的搜索栏上将此属性设置为true,则搜索栏将对该图像应用小于1.0的系统不透明度。
如果将此属性设置为false,采用了半透明的自定义背景图片搜索栏,搜索栏提供了图像的不透明背景使用黑色,如果在搜索栏中有UIBarStyleBlack风格,白色的,如果在搜索栏中有UIBarStyleDefault,或搜索栏的barTintColor(如果定义了自定义值)。
因此,要获得搜索栏的透明背景,还需要为其设置背景图像,该图像已在下面的SO线程中进行了描述。
无法在iOS 8中将搜索栏色调颜色更改为透明
使用链接线程(Obj-C)中的Mike:s答案,我们可以根据以下条件适应Swift:
searchBar.barTintColor = UIColor.clearColor() searchBar.backgroundImage = UIImage() searchBar.translucent = false
这应该实现透明的搜索栏。