我试图更改书签按钮的大小以及UISearchBar中的取消按钮。我创建了一个自定义searchBar和searchBarController。我已经能够没有任何问题地更改书签按钮的图像。就像我能够在搜索栏中更改UITextField的高度一样。我不知道如何进入两个按钮的子视图。如果有人碰巧知道如何做到这一点,将不胜感激。
编辑:
好吧所以我有以下方法可以在搜索栏的子视图中绘制。 indexOfSearchFieldInSubviews()是我第一次用来改变搜索栏内UITextField的大小。
override func layoutSubviews() {
super.layoutSubviews()
if let index = indexOfSearchFieldInSubviews() {
// Access the search field
let searchField: UITextField = (subviews[0]).subviews[index] as! UITextField
// Set its frame.
searchField.frame.size.height = frame.size.height - 10
searchField.frame.origin.x = 5
searchField.frame.origin.y = 5
// Set the font and text color of the search field.
searchField.font = preferredFont
searchField.textColor = preferredTextColor
// Set the background color of the search field.
searchField.backgroundColor = barTintColor
}
}
indexOfSearchFieldInSubviews的代码如下。因为我试图找到正确的观点,所以这很脏。
func indexOfSearchFieldInSubviews() -> Int! {
var index: Int!
let searchBarView = subviews[0]
for var i=0; i<searchBarView.subviews.count; ++i {
if searchBarView.subviews[i].isKindOfClass(UITextField) {
for subView in searchBarView.subviews[i].subviews{
//find the search icon and set the width/height for this.
if let bookmark = subView as? UIImageView{
bookmark.frame.size.height = 20
bookmark.frame.size.width = 20
}
//Find the Bookmark button and set the width/height for this.
if let button = subView as? UIButton{
button.frame.size.height = 40
button.frame.size.width = 40
}
}
index = i
//break
}
}
return index
}
因此,您可以看到我在子视图中查看搜索图标并为此设置大小。我还尝试捕获UIButton作为书签,当它找到这个子视图时,也会设置大小。我需要看看这个wil功能是否也适用于旧操作系统版本。我仍然试图找到取消按钮的子视图到目前为止没有运气