Ste*_*hen 10 search ios swift ios9
我一直在搜索这个问题,我希望我的搜索栏显示像BBC新闻应用程序
我尝试所有相关的方法
for view in searchBar.subviews {
if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) {
view.removeFromSuperview()
break;
}
}
self.searchBar.tintColor = UIColor.clearColor()
self.searchBar.backgroundColor = UIColor.clearColor()
self.searchBar.translucent = true
Run Code Online (Sandbox Code Playgroud)
我错过了什么?请帮帮我,谢谢!
Mar*_*rný 23
要完全删除背景,请设置backgroundImage为空图像:
searchBar.backgroundImage = UIImage()
Run Code Online (Sandbox Code Playgroud)
要设置自定义背景颜色,请使用barTintcolor属性:
searchBar.barTintColor = .green
Run Code Online (Sandbox Code Playgroud)
Ste*_*hen 10
总而言之,我通过将背景图像设置为'nil'来解决问题,这是我的应用程序中不存在的图像
==================== 更新最终解决 ====================
阅读更多文件后.最后我找到了更好的解决方案,
for subView in searchBar.subviews {
for view in subView.subviews {
if view.isKindOfClass(NSClassFromString("UINavigationButton")!) {
let cancelButton = view as! UIButton
cancelButton.setTitle("??", forState: UIControlState.Normal)
cancelButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
}
if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) {
let imageView = view as! UIImageView
imageView.removeFromSuperview()
}
}
}
Run Code Online (Sandbox Code Playgroud)
==================== 更新Swift4 ====================
for subView in searchBar.subviews {
for view in subView.subviews {
if view.isKind(of: NSClassFromString("UINavigationButton")!) {
let cancelButton = view as! UIButton
cancelButton.setTitleColor(.white, for: .normal)
cancelButton.setTitle("??", for: .normal)
}
if view.isKind(of: NSClassFromString("UISearchBarBackground")!) {
let imageView = view as! UIImageView
imageView.removeFromSuperview()
}
}
}
Run Code Online (Sandbox Code Playgroud)
备用版本作为扩展名
extension UISearchBar {
func removeBackgroundImageView(){
if let view:UIView = self.subviews.first {
for curr in view.subviews {
guard let searchBarBackgroundClass = NSClassFromString("UISearchBarBackground") else {
return
}
if curr.isKind(of:searchBarBackgroundClass){
if let imageView = curr as? UIImageView{
imageView.removeFromSuperview()
break
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13155 次 |
| 最近记录: |