美文网首页
iOS13 修改UISearchBar边框圆角失效

iOS13 修改UISearchBar边框圆角失效

作者: Shawkaine | 来源:发表于2019-11-07 00:05 被阅读0次

    项目要求搜索栏有自定义边框颜色、背景色和圆角。

    iOS 13 以前

    取出searchBar的私有子view _UISearchBarSearchFieldBackgroundView,直接修改 borderWidth, cornerRadius修改即可。

    iOS 13 以后失效

    打印视图层级 可看到_UISearchBarSearchFieldBackgroundView 仍然存在,但修改失效。 Debug View Hierarchy 查看视图层级

    可发现多了个UISearchTextField,且作为searchBar的属性可直接访问,这一点在 WWDC19演讲 - Modernizing Your UI for iOS 13 23分有提到

    官网的搜索十分好用,展示了关键词在演讲视频的位置、可以直接跳转,且有中文字幕。
    • 关于searchBar的很多设置均可直接操作searchTextField,不用再hook或者KVC了,很多KVC在iOS 13都会崩溃。

    顺便一提这部演讲介绍了iOS 13很多UI亮点功能,系统级别的新手势:双指下滑即多选,三指pinch即复制;搜索关键词UISearchTokenSheet下滑dismiss时更人性化的交互等等。有机会我再研究学习写篇文章。

    话说回来,取到searchBar.searchTextField进行修改,边框生效,圆角却失效了

    默认圆角比边框圆角大

    这是由于searchTextField.borderStyle默认为UITextBorderStyleRoundedRect,自带圆角。修改为UITextBorderStyleNone,运行,OK~

    其他参考

    相关文章

      网友评论

          本文标题:iOS13 修改UISearchBar边框圆角失效

          本文链接:https://www.haomeiwen.com/subject/uyapbctx.html