当前位置:  开发笔记 > IOS > 正文

为什么不透明样式在SearchBar上不起作用?

如何解决《为什么不透明样式在SearchBar上不起作用?》经验,为你挑选了1个好方法。

如何使搜索栏的颜色变为蓝色?

我试过了:

searchBar.opaque = true

searchBar.translucent = false

但这行不通。为什么?



1> dfri..:

从文档开始 .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

这应该实现透明的搜索栏。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有