我正在使用Xcode 9和Swift 4.我在尝试使用y中的滚动来隐藏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
答案 0 :(得分:0)
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
}
}
这应该可以做到!