答案 0 :(得分:4)
来自.opaque
var opaque:Bool {get set}
一个布尔值,用于确定视图是否不透明。
...
您只需要设置一个值 UIView的子类的opaque属性,用于绘制自己的内容 使用drawRect:方法。不透明属性对此没有影响 系统提供了诸如UIButton,UILabel,UITableViewCell等类, 等
因此,.opaque属性对原生UISearchBar没有影响;因此,在上面的例子中,searchBar.opaque
没有效果。
关于.translucent
属性,文档说明:
var translucent:Bool {get set}
一个布尔值,指示搜索栏是否为半透明 (true)与否(false)。
默认值为true。如果搜索栏具有自定义背景 如果图像的任何像素具有alpha,则默认为true 值小于1.0,,否则为。
如果在具有不透明自定义的搜索栏上将此属性设置为true 在背景图片中,搜索栏将应用系统不透明度小于 1.0到图像。
如果您在半透明的搜索栏上将此属性设置为false 自定义背景图像,搜索栏提供不透明背景 对于图像如果搜索栏具有UIBarStyleBlack样式,则使用黑色, 如果搜索栏包含UIBarStyleDefault,或搜索栏,则为白色 barTintColor如果定义了自定义值。
因此,要为搜索栏实现透明背景,您还需要为其设置背景图像,这已在前面的SO线程中进行了描述
在链接线程(Obj-C)中使用Mike的答案,我们可以根据以下内容适应swift:
searchBar.barTintColor = UIColor.clearColor()
searchBar.backgroundImage = UIImage()
searchBar.translucent = false
这应该是一个透明的搜索栏。