Swift更改SearchBar的“No Results”標籤和“Cancel”按鈕
今天要實現一個基於 TableView 的搜尋,基於經驗沿用了 iOS7 時代的 UISearchDisplayController,XCODE 一直提示我改用 UISearchController 。先不管這個,說說碰到的修改 Cancel 按鈕和修改 No Results 文字的問題。
修改 Cancel 按鈕比較簡單,直接通過 Controller 找到該 UINavigationButton 即可,最好的修改位置當然是在 searchDisplayControllerWillBeginSearch 方法。
func searchDisplayControllerWillBeginSearch(controller: UISearchDisplayController) {
self.searchDisplayController?.searchBar.showsCancelButton = true
var cancelButton: UIButton?
var topView: UIView = controller.searchBar.subviews[0] as! UIView
for view in topView.subviews {
if view.isKindOfClass(NSClassFromString("UINavigationButton")){
cancelButton = view as? UIButton
}
}
if (cancelButton != nil) {
cancelButton?.setTitle("取消", forState: UIControlState.Normal)
cancelButton?.setTitleColor(UIColor.appBlueColor(), forState: UIControlState.Normal)
}
}
修改 “No Results”就比較討厭,雖然思路類似,但是找了一圈都沒有直接找到該 UILabel,UISearchResultsUpdating 協議帶的方法
updateSearchResultsForSearchController 也不可以。最後還是在 StackOverFlow 找到了解決方案。
原帖:http://stackoverflow.com/questions/8447086/uisearchdisplaycontroller-no-results-text
func searchDisplayController(controller: UISearchDisplayController, shouldReloadTableForSearchString searchString: String!) -> Bool {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(0.01)
),
dispatch_get_main_queue(), {
for view in self.searchDisplayController?.searchResultsTableView.subviews as! [UIView]{
if view.isKindOfClass(NSClassFromString("UILabel")){
let label = view as! UILabel
label.text = "沒有匹配"
}
}
})
return true
}
還是準備使用 SearchController 了,看到那麼多 WARNING 就忍不了。
相關文章
- 窗體(文字框,按鈕,單選按鈕,標籤)
- 修改input標籤type=file型別按鈕的值型別
- [CSS]Input標籤與圖片按鈕對齊CSS
- <th>標籤的<input type="reset"/>重置按鈕簡單介紹屬性
- uniapp更改導航欄按鈕文字APP
- Excel新增按鈕快速更改大小寫Excel
- Qt更改按鈕樣式 (以QSpinBox使用左右按鈕樣式為例)QT
- 直播網站原始碼,EasyUI按鈕控制標籤顯示與隱藏網站原始碼UI
- 窗體(隨機數,列表框,標籤,按鈕,修改窗體名字)隨機
- Android介面-標題和按鈕定製-drawableAndroid
- java <%!%>標籤和<%%>標籤的使用Java
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- Swift 設定navigation左右兩側按鈕SwiftNavigation
- properties標籤和typeAliases標籤
- 按鈕上面的按鈕 (轉)
- 怎樣用純HTML和CSS更改預設的上傳檔案按鈕樣式HTMLCSS
- JFrame容器和JButton按鈕
- 原生前端:input標籤 number型別輸入框如何清除上下加減按鈕?前端型別
- vue中使用element ui時想要更改官方標籤的某些樣式時,一般不要在scoped中更改,要在全域性的style標籤中更改VueUI
- MFC 捕獲按鈕 按下和抬起 (轉)
- 按鈕
- HTML input submit和reset按鈕HTMLMIT
- 第 3 章 表格和按鈕
- Win10系統更改開始選單按鈕樣式的方法Win10
- 指標和標籤的基礎理解指標
- 凸出按鈕的TabBartabBar
- mybatis的 choose -- when test -- otherwise 標籤和 if test 標籤的區別MyBatis
- VUE動態路由和按鈕的實現Vue路由
- IOS:修改NavigationController的後退按鈕標題iOSNavigationController
- 按鈕禁用
- Bootstrap 按鈕boot
- Swift中的值和指標Swift指標
- iview Table元件渲染操作按鈕, render 渲染icon圖示更改方法View元件
- Script標籤的async和defer
- Swift-低仿搜狐新聞標籤頁效果Swift
- HTML標籤(基本標籤的使用)HTML
- ABAP ALV TOOLBAR 自定義按鈕的型別以及listmenu按鈕型別
- 自定義按鈕 圖片標題位置隨意放置