【问题标题】:Trying to hide SearchBar through Alpha in Swift试图在 Swift 中通过 Alpha 隐藏 SearchBar
【发布时间】:2018-04-22 13:42:33
【问题描述】:

我正在使用 Xcode 9 和 Swift 4。我无法尝试使用 y 中的滚动来通过 alpha 隐藏 SearchBar。如何访问此背景以尝试隐藏它? 代码:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let transp:Float = Float(1 - (self.mTableView.contentOffset.y / (self.mTableView.contentSize.height - self.mTableView.frame.size.height) * 60))
    self.navigationController!.navigationBar.alpha = CGFloat(transp)
    self.mSearchController.searchBar.alpha = CGFloat(transp)
    self.mSearchController.searchBar.isTranslucent = true
    titleMsgView.alpha = CGFloat(transp)
}

这是一个示例 gif 链接: https://www.dropbox.com/s/6is5mukpk1yew8e/bgSearch.gif?dl=0

【问题讨论】:

    标签: swift scroll uisearchbar alpha navigationbar


    【解决方案1】:

    SearchView 在更改外观方面非常困难。您可以尝试遍历 SearchView 的子视图并将其所有 alpha 值设置为 0,如下所示:

    for subView in mSearchController.searchBar.subviews {
        subView.alpha = 0
        for deepSubView in subView.subviews {
            deepSubView.alpha = 0
        }
    }
    

    另外,请注意:您可以从代码中删除很多 self 关键字。

    编辑:这只是删除了搜索栏,但通过一些编辑我们可以解决这个问题:

    for subview in mSearchController.searchBar.subviews.last!.subviews {
        if type(of: subview) == NSClassFromString("UISearchBarBackground") {
            subview.alpha = 0
        }
    }
    

    这应该可以解决问题!

    【讨论】:

    • 谢谢,我删除了“自我”。使用您发布的代码,它隐藏了 SearchBar 搜索字段。 dropbox.com/s/f6mel4ra2kmzg3z/bgSearch2.gif?dl=0
    • @OséiasRibeiro 嘿,我添加了更多代码,应该对你有帮助:)
    • 您只是复制并粘贴了代码,而不更改名称?我会为你做一些改变。
    • 抱歉,我从未使用过子视图。我什么都不懂。
    • 这很奇怪。现在它不显示灰色背景,而是显示白色。 dropbox.com/s/fgu84mipa4o27wd/screen3.jpeg?dl=0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2014-11-11
    相关资源
    最近更新 更多