Swift 更改UISearchBar取消按钮的字体样式

Swift 更改UISearchBar取消按钮的字体样式,swift,Swift,我正在尝试将UISearchBar取消按钮的字体更改为“OpenSAN”,但无法访问任何属性。我只能更改UISearchBar的色调,这会更改搜索栏“取消”按钮文本和搜索栏UITextField光标的颜色: searchBar.tintColor = UIColor(red: 187.0/255.0, green: 187.0/255.0, blue: 187.0/255.0, alpha: 1.0) 有没有办法做到这一点 试试这样的东西,对我很管用 UIBarButtonItem.appe

我正在尝试将UISearchBar取消按钮的字体更改为“OpenSAN”,但无法访问任何属性。我只能更改UISearchBar的色调,这会更改搜索栏“取消”按钮文本和搜索栏UITextField光标的颜色:

searchBar.tintColor = UIColor(red: 187.0/255.0, green: 187.0/255.0, blue: 187.0/255.0, alpha: 1.0)

有没有办法做到这一点

试试这样的东西,对我很管用

 UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).setTitleTextAttributes([NSFontAttributeName : UIFont(name: "OpenSans", size: 15)!], forState: .Normal)
如果还想更改颜色,请将其添加到属性数组中

 NSForegroundColorAttributeName : UIColor.whiteColor()
注意:iOS 9中提供了swift 2:

if #available(iOS 9.0, *) {
     UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).setTitleTextAttributes([NSFontAttributeName : UIFont.systemFontOfSize(15, weight: UIFontWeightLight)], forState: .Normal)
} else {
     // Fallback on earlier versions
}
迅捷3:

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSFontAttributeName : UIFont(name: "OpenSans", size: 15)!], for: .normal)
目标C:

[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                  [UIColor blueColor], 
                                                  UITextAttributeTextColor, 
                                                  [UIColor darkGrayColor], 
                                                  UITextAttributeTextShadowColor, 
                                                  [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
                                                  UITextAttributeTextShadowOffset,
                                                  nil] 
                                        forState:UIControlStateNormal];
这是Swift 3.0版的

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSFontAttributeName : UIFont(name: "OpenSans", size: 15)!], for: .normal)

Swift 4.2

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSAttributedString.Key.font : UIFont(name: "your_font_name", size: 16)!], for: .normal)

你不会碰巧有这样的斯威夫特吧?很漂亮,伙计。谢谢。您可能需要注意的是,“AppearanceWhenContainedInstancesofClass”仅适用于iOS 9.0>@JLO我不确定您的意思,这是swift。