2012-04-16 31 views
10

मैं अपने आईफोन पर स्क्रॉल डाउन पर दोनों बार छिपाना चाहता हूं। जब मैं स्क्रॉल करता हूं, तो उन्हें फिर से दिखना चाहिए .. मैं इसे कैसे संभाल सकता हूं?एक्सकोड/आईओएस: स्क्रॉल डाउन पर नेविगेशन- और टूलबार को कैसे छिपाना है?

+1

क्या आपने 'setToolbarHidden: एनिमेटेड:' और 'setNavigationBarHidden: एनिमेटेड:' स्क्रॉल व्यूडिडस्क्रॉल में उपयोग करने का प्रयास किया था: 'जब' सामग्री ऑफसेट 'का x मान बढ़ता है। – dasdom

+1

कृपया यहां अंग्रेजी का प्रयोग करें। यह दुनिया भर के लोगों के लिए एक मंच है। जब हम जर्मन में बात करना शुरू करते हैं, तो बहुत से लोग अनुसरण नहीं कर सकते हैं। जब आपको जर्मन में सलाह की आवश्यकता होती है तो मुझे एक ईमेल भेजें। मुझे लगता है कि, मेरे ईमेल पते को ढूंढने के लिए मुझे अपनी प्रोफ़ाइल में जो जानकारी मिल सकती है, उससे मुश्किल नहीं होनी चाहिए। – dasdom

उत्तर

4

स्वीकृत उत्तर मेरे लिए काम नहीं करता है, क्योंकि scrollViewWillBeginScroll: एक प्रतिनिधि विधि नहीं है।

इसके बजाय मैं

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldHide" object:self]; 

} 

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
       willDecelerate:(BOOL)decelerate 
{ 
    if(!decelerate) 
     [[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldUnhide" 
                  object:self]; 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldUnhide" 
                 object:self]; 
} 

कहीं भी एप्लिकेशन वस्तुओं में करते हैं, जैसे

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [[NSNotificationCenter defaultCenter] addObserverForName:@"BarsShouldHide" 
                 object:nil 
                 queue:nil 
                usingBlock:^(NSNotification *note) { 
     //hide tab bar with animation; 
    }]; 
    [[NSNotificationCenter defaultCenter] addObserverForName:@"BarsShouldUnhide" 
                 object:nil 
                 queue:nil 
                usingBlock:^(NSNotification *note) { 
     //Unhide tab bar with animation; 
    }]; 
} 

इस कोड को किसी भी पुस्तक के लिए बार छुपाने जाएगा इस सूचना के लिए सुन सकते हैं। यदि आप केवल नीचे उतरना चाहते हैं, तो स्वीकृत उत्तर में उसी locationOffset चाल को काम करना चाहिए।

7
- (void)scrollViewWillBeginScroll :(UIScrollView *)scrollView { 
     if (scrollView.contentOffset.y < lastOffset.y) { 
       [toolBar setHidden:YES]; 
       [[[self navigationController] navigationBar] setHidden:YES]; 
     } else{ 
       // unhide 
     } 
} 

- (void)scrollViewDidScroll :(UIScrollView *)scrollView { 
     /// blah blah 
     lastOffset = scrollView.contentOffset; 
} 

नोट: lastOffset एक CGPoint है और यह अपने हेडर फाइल में चला जाता है: @Interface

+0

mdominick: "iVar" के साथ आपका क्या मतलब है? – filou

+0

इंस्टेंस वैरिएबल। – mdominick

+0

मैं इस पर काफी नया हूं: एस मैं इस चर को कैसे परिभाषित करूं? क्या यह एक एनएसएसटींग है? – filou

0

यहां स्विफ्ट में मेरा समाधान है; यह काम करता है खूबसूरती से

func scrollViewDidScroll(scrollView: UIScrollView) { 
    let navController: UINavigationController = self.navigationController! 
    if self.collectionView.panGestureRecognizer.translationInView(self.view).y <= 0.0 { 
     defaultCenter.postNotificationName("stuffShouldHide", object: self) 
    } else { 
     defaultCenter.postNotificationName("stuffShouldUnhide", object: self) 
    } 
} 
0

आप इस, iOS8 से उपलब्ध की जाँच कर सकते, मुझे लगता है कि यह आपके लिए ... क्या देख रहे रिवर्स लेकिन जाँच के लायक है के रूप में यह कुछ मानक है और यह है कि कैसे सफारी काम करता है।

स्विफ्ट

वर hidesBarsOnSwipe: बूल

ऑब्जेक्टिव-सी

@property (nonatomic, ReadWrite, आवंटित) BOOL hidesBarsOnSwipe चर्चा

इस संपत्ति पर सेट होने पर हाँ , ऊपर की ओर स्वाइप नेविगेशन बार और टूलबार छुपाता है। एक नीचे की ओर स्वाइप दो बार बार दिखाता है। यदि टूलबार में कोई आइटम नहीं है, तो यह स्वाइप के बाद भी दिखाई देता है। इस संपत्ति का डिफ़ॉल्ट मान नहीं है।

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

  • कोई संबंधित समस्या नहीं^_^