मैं अपने आईफोन पर स्क्रॉल डाउन पर दोनों बार छिपाना चाहता हूं। जब मैं स्क्रॉल करता हूं, तो उन्हें फिर से दिखना चाहिए .. मैं इसे कैसे संभाल सकता हूं?एक्सकोड/आईओएस: स्क्रॉल डाउन पर नेविगेशन- और टूलबार को कैसे छिपाना है?
उत्तर
स्वीकृत उत्तर मेरे लिए काम नहीं करता है, क्योंकि 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
चाल को काम करना चाहिए।
- (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
।
यहां स्विफ्ट में मेरा समाधान है; यह काम करता है खूबसूरती से
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)
}
}
आप इस, iOS8 से उपलब्ध की जाँच कर सकते, मुझे लगता है कि यह आपके लिए ... क्या देख रहे रिवर्स लेकिन जाँच के लायक है के रूप में यह कुछ मानक है और यह है कि कैसे सफारी काम करता है।
स्विफ्ट
वर hidesBarsOnSwipe: बूल
ऑब्जेक्टिव-सी
@property (nonatomic, ReadWrite, आवंटित) BOOL hidesBarsOnSwipe चर्चा
इस संपत्ति पर सेट होने पर हाँ , ऊपर की ओर स्वाइप नेविगेशन बार और टूलबार छुपाता है। एक नीचे की ओर स्वाइप दो बार बार दिखाता है। यदि टूलबार में कोई आइटम नहीं है, तो यह स्वाइप के बाद भी दिखाई देता है। इस संपत्ति का डिफ़ॉल्ट मान नहीं है।
क्या आपने 'setToolbarHidden: एनिमेटेड:' और 'setNavigationBarHidden: एनिमेटेड:' स्क्रॉल व्यूडिडस्क्रॉल में उपयोग करने का प्रयास किया था: 'जब' सामग्री ऑफसेट 'का x मान बढ़ता है। – dasdom
कृपया यहां अंग्रेजी का प्रयोग करें। यह दुनिया भर के लोगों के लिए एक मंच है। जब हम जर्मन में बात करना शुरू करते हैं, तो बहुत से लोग अनुसरण नहीं कर सकते हैं। जब आपको जर्मन में सलाह की आवश्यकता होती है तो मुझे एक ईमेल भेजें। मुझे लगता है कि, मेरे ईमेल पते को ढूंढने के लिए मुझे अपनी प्रोफ़ाइल में जो जानकारी मिल सकती है, उससे मुश्किल नहीं होनी चाहिए। – dasdom