करने के लिए फिल्टर बटन जोड़ें मैं एक UISearchController
अंदर searchBar
के बगल में "फिल्टर" या "प्रकार" बटन जोड़ना चाहते हैं। मैंने UIButton
और searchbar
को UIView
में जोड़ने की कोशिश की है और इसे मेरे UITableView tableView.tableHeaderView
के रूप में सेट करें यह काम नहीं करता है क्योंकि tableView.tableHeaderView
नियंत्रक को खारिज करते समय UISearchBar
पर वापस सेट हो जाता है। यहां एक उदाहरण दिया गया है कि मैं इसे कैसे देखना चाहता हूं: UISearchController
उत्तर
मैं खोज नियंत्रक खो देता हूं, यह वास्तव में आपकी इच्छित सुविधाओं की पेशकश नहीं करता है और अतिरिक्त दृश्य/वीसी जिसे आपको आपूर्ति करने की आवश्यकता है जटिलता/कोड जोड़ता है दोहराव।
आपके मौजूदा तालिका दृश्य में आपके पास पहले से मौजूद सभी चीजें हैं, क्योंकि इसमें डेटा स्रोत है। यह या तो एक सरणी या एक एफआरसी है। यदि यह एक सरणी है तो आप अपनी फ़िल्टर की गई सामग्री के साथ सरणी की सामग्री को प्रतिस्थापित कर सकते हैं, और यदि यह एक एफआरसी है तो आप भविष्यवाणी बदल सकते हैं।
नोट: सरणी मामले में, 2 सरणी संदर्भ हैं, 1 जो आपके सभी unfiltered वस्तुओं को पकड़ने वाले सरणी को इंगित करता है और दूसरा जो प्रारंभ में उसी सरणी का संदर्भ है - दूसरा संदर्भ तालिका दृश्य को पॉप्युलेट करने के लिए उपयोग किया जाता है। फिर, जब आप फ़िल्टर करते हैं, तो आप केवल फ़िल्टर किए गए आइटम के साथ एक नई सरणी बनाते हैं और उस पर दूसरा संदर्भ इंगित करते हैं।
इसके बजाय खोज नियंत्रक प्रतिनिधि विधि आप खोज पट्टी प्रतिनिधि के तरीकों को लागू करने और उपयोग करने वाले को छानने को गति प्रदान और पुनर्स्थापित करने के लिए लागू करने की।
अब आप खोज नियंत्रक आप भी तालिका दृश्य स्विच नहीं कर रहे हैं से छुटकारा मिल गया इसलिए आपको केवल 1 टीवी और 1 हैडर दृष्टिकोण है। अब हेडर व्यू को बदलने का कोई कारण नहीं है और सबकुछ बस काम करता है।
मुझे वह चीज़ नहीं है जो आप समझ रहे हैं कि मैं क्या देख रहा हूं। मैं नहीं जानना चाहता कि तालिका को कैसे फ़िल्टर करना है, बल्कि खोज बार के बगल में एक फ़िल्टर बटन को प्रबंधित करने के लिए कैसे करें बटन (आदर्श खोज नियंत्रक में) – smnk
यही कारण है कि मैंने खोज नियंत्रक को खोने के बारे में पूछा। आपके पास समस्या यह है कि खोज नियंत्रक एक अलग दृश्य प्रस्तुत करता है, इसलिए शीर्षलेख को अलग-अलग कॉन्फ़िगर किया गया है। आप दूसरे दृश्य पर बस एक और शीर्षलेख स्थापित करने में सक्षम होना चाहिए। मुझे लगता है कि खोज नियंत्रक केवल थोड़ा वास्तविक लाभ के लिए जटिलता जोड़ते हैं। यदि आपके पास केवल 1 दृश्य है तो आपके पास 1 हेडर है जो कॉन्फ़िगर करना आसान है और फोकस प्रबंधन भी सरल है। – Wain
मैंने कोशिश की रास्ते से बहुत searchbar अनुकूलित करने के लिए है, लेकिन कुछ भी नहीं है मुझ पर पिछले करने के लिए एक रास्ता मिल गया मदद की पूर्ण भरने आपकी आवश्यकता
let mysearchController = UISearchController(searchResultsController: nil)
mysearchController.searchBar.showsCancelButton = true
mysearchController.searchBar.barStyle = UIBarStyle.Black
for var subView1 in mysearchController.searchBar.subviews{
for var subView2 in subView1.subviews{
if subView2 .isKindOfClass(UIButton){
let customizedCancelButton:UIButton = subView2 as! UIButton
customizedCancelButton.enabled = true
customizedCancelButton.setTitle("", forState: UIControlState.Normal)
let image1 = UIImage(named: "Sort")
customizedCancelButton.setBackgroundImage(image1, forState: UIControlState.Normal)
customizedCancelButton.addTarget(self, action: "sort", forControlEvents: UIControlEvents.TouchUpInside)
}
}
}
कोड ऊपर ज्यादा समझने के लिए सरल है।
func sort(){
print("sort button fired!!!")
}
, आप इसे SearchBar बगल में अपने स्वयं के बटन जोड़कर सरल रख सकते हैं।
सेट नहीं शो रद्द का उपयोग कर
self.searchBar.showsCancelButton = true
या
अचिह्नित शो SearchBar के लिए रद्द बटन विकल्प स्टोरीबोर्ड में
जोड़े SearchBar के लिए बटन विकल्प आपके स्वयं बटन बी eside SearchBar के रूप में नीचे
दिखाया और फिर उसके अनुसार उस में बटन को IBaction जोड़ सकते हैं और अपने कार्यों प्रदर्शन करते हैं।
इसके अलावा आदर्श मामले में, यह नहीं सिफ़ारिश लायक tableview के शीर्ष लेख में इस दृश्य डाल करने के लिए है। यह बेहतर होगा यदि यह तालिकादृश्य से ऊपर है और इसके बाद ऐप्पल भी है।
मैं कोड की कुछ लाइनों के साथ एक खोज फ़िल्टर बना सकते हैं। मुझे उम्मीद है यह मदद करेगा।
* मैंने फ़िल्टर आइकन लागू करने के लिए बुकमार्क बटन चुना है; क्योंकि मैं कस्टम कार्रवाई के लिए पहले ही रद्द बटन का उपयोग कर चुका हूं।
सबसे पहले, आपके पास बुकमार्क बटन क्लिक कार्रवाई को संभालने के लिए प्रतिनिधि खोजबार है। फिर आपको नीचे गुणों को सेट करना चाहिए। यदि आप कस्टम स्थिति देना चाहते हैं (डिफ़ॉल्ट स्थिति सही है), तो आपको PositionAdjustment सेट करने की आवश्यकता है।
searchController.searchBar.delegate = self
searchController.searchBar.showsBookmarkButton = true
searchController.searchBar.setImage(UIImage(named: "Sort.png"), for: .bookmark, state: .normal)
// MARK: You may change position of bookmark button.
//searchController.searchBar.setPositionAdjustment(UIOffset(horizontal: 0, vertical: 0), for: .bookmark)
फिर, खोज VarBookmarkButtonClid फ़ंक्शन को अपने वीसी के अंदर ओवरराइड करें। आप इस विधि के अंदर क्लिक इवेंट को संभाल सकते हैं।
func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) { //showAlert, presentVC or whatever you want here }
इसके अलावा, अगर आप बुकमार्क बटन को छिपाने के लिए है, जबकि खोज नियंत्रक सक्रिय है चाहते हैं, आप updateSearchResults विधि के अंदर नियंत्रण लागू करने के लिए की जरूरत है।
if searchController.isActive {
searchController.searchBar.showsBookmarkButton = false
} else {
searchController.searchBar.showsBookmarkButton = true
}
ग्रेट सॉल्यूशन! धन्यवाद। – Alessign
- 1. UISearchController
- 2. UISearchController
- 3. UISearchController iOS8
- 4. UISearchController आईओएस 8 स्विफ्ट
- 5. UISearchController सर्चबार टेबलव्यू
- 6. UISearchController नियंत्रक काला
- 7. UISearchController खोज बॉक्स टैप
- 8. UISearchController में रद्द करें बटन
- 9. uisearchcontroller का पृष्ठभूमि रंग बदलें
- 10. iOS8 स्विफ्ट UISearchController navigationbar छुपाता
- 11. UISearchController नहीं Redisplaying नेविगेशन बार घुमाएँ
- 12. UISearchController खोज बार स्थिति 64 अंक
- 13. एक गैर-तालिका दृश्य में UISearchController जोड़ना
- 14. UITableView कक्षों पर पीक और पॉप UISearchController
- 15. UISearchController प्रस्तुति/बर्खास्तगी एनीमेशन के साथ एनिमेट कैसे करें?
- 16. NSFetchedResultsController और UISearchController को एक साथ कैसे उपयोग करें?
- 17. नेविगेशन बार को छिपाने से UISearchController को रोकें
- 18. UISearchController लोड होने पर स्वचालित रूप से कीबोर्ड दिखाएं
- 19. UISearchController का उपयोग UICollectionView के साथ नहीं कर सकता?
- 20. टीवीओएस में फोकस बदलते समय UISearchController में कीबोर्ड को कैसे खारिज करें?
- 21. UISearchController के उप-वर्ग में "searchBar" प्रॉपर्टी को ओवरराइड कैसे करें?
- 22. UISearchController का UISearchBar का कर्सर पहले उपयोग दिखाता है, बाद में
- 23. मैं स्टोरीबोर्ड UISearchBar को प्रोग्रामेटिक रूप से बनाए गए UISearchController से कैसे कनेक्ट कर सकता हूं?
- 24. UISearchController - चेतावनी दृश्य नियंत्रक के दृश्य को लोड करने का प्रयास
- 25. आप UISearchController को कैसे खारिज करते हैं? (आईओएस 8 और फ़ॉलो करें)
- 26. मैं UISearchController की खोजबार को उस दृश्य में कैसे सेट करूं जो तालिका नहीं है हैडर व्यू या नेविगेशन Item.titleview?
- 27. जब मैं खोज शुरू करता हूं तो UISearchController में मेरा UISearchBar गायब हो जाता है। क्यूं कर?
- 28. UISearchController:</p> <p>जब स्क्रीन पहले भरी हुई है, खोज पट्टी भी है: खोज पट्टी शुरू में बहुत चौड़ा
- 29. UITableView नेवबार के नीचे जा जब एक परिणाम के दृश्य में प्रवेश करने और वापस आने के
- 30. नेविगेशन में UISearchControllerBar
वहाँ एक विशेष कारण है कि आप एक खोज नियंत्रक का उपयोग कर रहे है? क्या आप इसका उपयोग नहीं कर रहे हैं और तालिका दृश्य को सीधे फ़िल्टर कर रहे हैं? – Wain
कारण पूरी तरह से ऑप्टिकल है। तो मैं – smnk
के साथ ठीक हो जाऊंगा, मुझे और अधिक विशिष्ट होना चाहिए, आपके पास पहले से ही एक टेबल व्यू होना चाहिए, क्या आप इसे फ़िल्टर करने में खुश हैं या आप खोज परिणामों को प्रस्तुत करने के लिए विशेष रूप से अलग दृश्य का उपयोग कर रहे हैं/खोज नियंत्रक ओवरले क्षमता चाहते हैं? – Wain