2013-05-21 5 views
13

मैं इस प्रभाव को कैसे प्राप्त कर सकता हूं?UITableView स्क्रॉल (फेसबुक के ऐप के समान) पर टूलबार तत्व छुपाएं

full top view http://i39.tinypic.com/f0vx4l.pnghalf top view http://i40.tinypic.com/2w7486r.png top view almost hidden http://i42.tinypic.com/k95r9.png

+0

स्क्रीनशॉट का कौन सा हिस्सा आपको इच्छित प्रभाव दिखाता है? क्या यह स्थिति, फोटो इत्यादि है? –

+0

ओह, आपको ऐसा करने के लिए स्क्रॉलव्यू प्रतिनिधि विधियों का उपयोग करने की आवश्यकता होगी। यह सिर्फ एक UIView है जो तालिका दृश्य के ऊपर बैठता है। – Fogmeister

उत्तर

18

यह तुरंत अपने स्क्रीनशॉट से ध्यान देने योग्य नहीं है, लेकिन मेरा मानना ​​है कि आपको लगता है कि शीर्ष लेख उपकरण पट्टी उपयोगकर्ता स्क्रॉल के रूप में ऊपर की ओर स्लाइड करना चाहते हैं, सही:

अपने नियंत्रक में

तो, आप कुछ की तरह जोड़ सकते हैं ? (मैं उस भाग पर स्पष्टीकरण देने का सुझाव दूंगा)

आप इसे कुछ तरीकों से कर सकते हैं, और उन सभी में आपको अपना स्क्रॉलिंग तर्क लागू करना होगा, जिसका अर्थ है कि आपके पास कहां हैडर टूलबार कितना है स्क्रॉल किया। उस ने कहा, यहां यह कैसे करें:

। यदि आप UITableView का उपयोग कर रहे हैं, तो मुझे लगता है कि आपको अपना व्यू कंट्रोलर सेट delegate के रूप में सेट किया गया है। चूंकि UITableView पहले से ही UIScrollView का उप-वर्ग है, तो बस अपने दृश्य नियंत्रक को UIScrollViewDelegate जोड़ें। इससे हमें घटनाओं को स्क्रॉल कर दिया जाएगा। आप scrollViewDidScroll: में अपना तर्क करना चाहेंगे।

2.। यदि आप बस UIScrollView का उपयोग कर रहे हैं, तो बस अपने व्यू कंट्रोलर को अपने प्रतिनिधि के रूप में सेट करें, UIScrollViewDelegate लागू करें, और scrollViewDidScroll: में अपना तर्क करें।

कहा यही कारण है, अपने कोड कुछ इस तरह दिख सकता है:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint scrollPos = scrollView.contentOffset; 

    if(scrollPos.y >= 40 /* or CGRectGetHeight(yourToolbar.frame) */){ 
     // Fully hide your toolbar 
    } else { 
     // Slide it up incrementally, etc. 
    } 
} 

वैसे भी, आशा है कि मैं मदद की।

5

आप ठीक ढंग से प्रतिनिधि निर्धारित किया है, तो अपनी मेज scrollViewDidScroll कॉल करेगा: जब स्क्रॉल।

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y >0) //means that the user began to scroll down the table 
    { 
     [UIView animateWithDuration:0.4 animations:^{ 
      //animations you want to perform 
     }]; 
    } 
} 
3

मैं इस आशय के लिए साधारण क्लास बनाने के लिए: UIHidingView is an iOS class that displays UIView element on top UITableView which is hiding when Table View is scrolling.

+1

यह ठीक काम कर रहा है। लेकिन, इस श्रेणी में एक बड़ा मुद्दा है। इस श्रेणी को जोड़ने के बाद । जब हम UIImagePickerController का उपयोग कर गैलरी प्रस्तुत करने का प्रयास करते हैं, तो हम ios6 में एल्बमों में फ़ोटो नहीं देख सकते हैं। –

0

यह आपके सवाल का जवाब देगा:

iPhone: Hide UITableView search bar by default

इसी अवधारणा, अलग नियंत्रण। आप टेबलव्यू की शीर्ष पंक्ति या बटन जैसे किसी अन्य प्रासंगिक नियंत्रण पर UIView डाल सकते हैं।

शुभकामनाएं।

1

यहां मैंने टेबलव्यू स्क्रॉलिंग के दौरान UIView Hide/Show के लिए कोड लागू किया। जब टेबलव्यू नीचे स्क्रॉल हो जाता है तो UIView छिपा हुआ होता है और जब ऊपर स्क्रॉल होता है तो UIView शो। मुझे उम्मीद है कि यह आपके लिए काम कर रहा है ...!

चरण 1: -: scrollViewDidScroll विधि में इस कोड को लिख लें - ज फ़ाइल

@property (nonatomic) CGFloat previousContentOffset; 

चरण 2 में एक प्रॉपर्टी करें।

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 

CGFloat currentContentOffset = scrollView.contentOffset.y; 

if (currentContentOffset > self.previousContentOffset) { 
    // scrolling towards the bottom 
    [self.subButtonView setHidden:YES]; 
} else if (currentContentOffset < self.previousContentOffset) { 
    // scrolling towards the top 
    [self.subButtonView setHidden:NO]; 
} 
self.previousContentOffset = currentContentOffset; 
} 
संबंधित मुद्दे