2017-09-14 13 views
7

जैसा कि पहले से ही पोस्ट किया गया है (उत्तर में से कोई काम नहीं करता है) के समान समस्या है, मेरी तालिका एक निश्चित चौड़ाई है, और आईओएस 10.x में सर्चबार (जो टेबलव्यूहेडर में है) लिखते समय एक ही आकार रहता है। हालांकि आईओएस 11 में, यह स्क्रीन के शीर्ष पर कूदता है और कुल चौड़ाई पर फैला हुआ है। सभी विकल्पों की कोशिश की;आईओएस 11 सर्च कंट्रोलर स्क्रीन के शीर्ष पर कूदता है

self.definesPresentationContext = YES; 
tableHeaderView.clipsToBounds = YES; 
etc 

लेकिन कुछ भी बदलने के लिए लगता है .. यह अभी भी शीर्ष पूरी चौड़ाई के लिए कूदता है ..

किसी भी अन्य विकल्प?

Xcode 9 जीएम आईओएस 11 के साथ (Xcode आईओएस 10.x के साथ 9 जीएम और यह सब ठीक काम करता है)

उत्तर

1

पहले तुम तो अपने प्रतिनिधि सेट UISearchControllerDelegate

जोड़ने की जरूरत है

self.searchController.delegate=self; 

एक नया दृश्य रखें जो आपकी खोज धारण करेगा नियंत्रक

-(void) viewDidLoad{ 
    UIView *searchContainerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.searchTable.frame.size.width, 30)]; 
    searchContainerView.layer.masksToBounds=YES; 
    searchContainerView.clipsToBounds=YES; 
    self.tableView.tableHeaderView=searchContainerView; 
    self.searchController.searchBar.layer.masksToBounds=YES; 
    self.searchController.searchBar.clipsToBounds=YES; 
    [searchContainerView addSubview:self.searchController.searchBar]; 
    [self.searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)];//Make sure that your header view and searchcontroller size is same 
} 

फिर वें जोड़ें ESE प्रतिनिधि तरीकों

- (void)didPresentSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 
- (void)didDismissSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 

वह मेरे लिए काम किया, मुझे आशा है कि आप कर देगा यह काम

+2

मैं खोज पट्टी की चौड़ाई समायोजित करने के लिए इस कोड को प्राप्त करने में सक्षम हूँ, लेकिन मेरे खोज पट्टी अभी भी से बाहर कूदता मेरे टेबल दृश्य के शीर्ष और स्क्रीन के शीर्ष किनारे पर जाता है। यदि मैं इसे PresPresentSearchController में स्थानांतरित करने का प्रयास करता हूं: तो इसे बड़ी ऊंचाई या बड़ी वाई स्थिति देने के बावजूद अजीब तरीके से काटा जाना शुरू हो जाएगा। –

+0

क्या आप अपना कुछ कोड पोस्ट कर सकते हैं, मैं यह नहीं समझ सकता कि क्या गुम है। – BaranBerk

संबंधित मुद्दे