首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否为UISearchBar设置cornerRadius?

是否为UISearchBar设置cornerRadius?
EN

Stack Overflow用户
提问于 2018-01-24 06:06:49
回答 1查看 2.1K关注 0票数 3

我想更改UISearchbar的cornerRadius属性,但它不起作用。我尝试过:

代码语言:javascript
复制
if let textfield = searchBar.value(forKey: "searchField") as? UITextField {
        textfield.textColor = Color.text.primary // this is working
        if let backgroundView = textfield.subviews.first {
            backgroundView.layer.cornerRadius = 2 // not working
            backgroundView.clipsToBounds = true
        }
    }

有什么想法吗?如果我将backgroundView设置为另一种颜色,它将按预期工作(因此BackgroundView在此处)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 07:07:55

它看起来像是背景视图有自定义的渲染代码来强制圆角。您可以尝试的是隐藏该视图,并手动配置文本字段以使其外观相同。

代码语言:javascript
复制
if let textField = self.searchBar.subviews.first?.subviews.flatMap({ $0 as? UITextField }).first {
    textField.subviews.first?.isHidden = true
    textField.textColor = Color.text.primary
    textField.layer.backgroundColor = UIColor.white.cgColor
    textField.layer.cornerRadius = 2
    textField.layer.masksToBounds = true
}

请注意,如果苹果公司决定改变UISearchBar文本字段的结构方式,这可能会在未来的iOS版本中被打破。

编辑为不使用value(forKey:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48411613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档