UISearchBar书签图标未隐藏在滚动上

问题描述 投票:1回答:1

我的导航栏中集成了UISearchBar,代码如下:

// not needed because it's default
navigationItem.hidesSearchBarWhenScrolling = true

self.navigationItem.searchController = searchController

我还添加了这样的自定义书签图标:

searchController.searchBar.setImage(icon, for: .bookmark, state: .normal)
searchController.searchBar.showsBookmarkButton = true
searchController.searchBar.layoutIfNeeded()

这在iOS 11.4和12.1.4中产生了这种奇怪的外观

enter image description here

看起来文本字段不会剪切图标,也不会像占位符和搜索图标那样应用淡入淡出动画。

你们有没有看到我的错误?如果没有,有人可以复制这个吗?然后这是一个错误,我将提交雷达。

ios uinavigationcontroller uinavigationbar uisearchbar uisearchcontroller
1个回答
1
投票

好吧,我通过这样做解决了这个问题:

searchController.searchBar.allSubviews.forEach { $0.clipsToBounds = true }

使用此扩展来获取所有嵌套子视图:

extension UIView {
    var allSubviews: [UIView] {
        return self.subviews.reduce([UIView]()) { $0 + [$1] + $1.allSubviews }
    }
}

但这有点hacky所以其他解决方案是值得赞赏的:)

© www.soinside.com 2019 - 2024. All rights reserved.