我已经纠结了一段时间了。我到处都找过了,但提供的解决方案只适用于objective-c。其中包括
第一个月
虽然有些人可能会说这是受保护的API,苹果可能会拒绝使用这种代码的应用程序。
所以,现在我已经尝试了很多方法来解决这个问题,但它根本不起作用。我的代码是这样的:
searchBar = UISearchBar(frame: CGRectMake(0, 0, 320.0, 30.0))
searchBar.autoresizingMask = UIViewAutoresizing.FlexibleWidth
searchBar.searchBarStyle = UISearchBarStyle.Minimal
searchBar.layer.cornerRadius = 15
searchBar.delegate = self
searchBar.backgroundColor = UIColor.whiteColor()
if floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1{
// Load resources for iOS 6.1 or earlier
searchBar.placeholder = "Search";
} else {
// The following "hack" (if we can call that) breaks the UI for different size devices.
// Load resources for iOS 7 or later
searchBar.placeholder = "Search ";
}
字符串
这给了我一个奇怪的结果:x1c 0d1x的数据
而我想要的只是UISearchBar内的文本字段有一个白色的背景和SearchBar本身有一个cornerRadius,比如说,15。
我该怎么办?
先谢谢你了
7条答案
按热度按时间hmtdttj41#
您必须访问UISearchBar中的UITextField。您可以使用
valueForKey("searchField")
来实现这一点字符串
可以在其中更改UITextField的任何参数,如textColor或backgroundColor
yacmzcpb2#
在Swift 3中:
字符串
kx5bkwkv3#
加上上面的答案。如果要保持搜索栏样式UISearchBarStyleMinimal并更改UISearchBar的textField的背景,请将textField的borderStyle设置为UITextBorderStyleNone
目标C:
字符串
1aaf6o9v4#
Swift 5和iOS 13
字符串
你可以直接改变文本域背景的颜色。
kcrjzv8t5#
向
UISearchBar
添加扩展以访问其UITextField
:字符串
然后,您可以按预期设置其属性:
型
wfveoks06#
searchController.searchBar.searchTextField.backgroundColor = UIColor.白色searchController.searchBar.searchTextField.textColor = UIColor.black
dwthyt8l7#
使用iOS 16或更高版本时,可以直接访问
searchTextField
属性。但是,设置
backgroundColor
仅在borderStyle
设置为.none
时才能按预期工作。这将导致文本字段没有圆形边框。要解决此问题,请使用以下代码:字符串