2012-09-25 12 views
5

खींचता है मैं UITableView के ऊपर एक UIView जोड़ने की कोशिश कर रहा हूं। इरादा यह है कि चूंकि प्रयोक्ता सामग्री को नीचे खींचता है (जैसा कि सामान्य रूप से पुल-टू-रीफ्रेश के लिए होता है), UITableView की पृष्ठभूमि दिखाए जाने के बजाय, तालिका के ऊपर UIView शीर्ष UITableViewCell पर फंसने के लिए बढ़ना चाहिए जो नीचे फिसल रहा है । चूंकि उपयोगकर्ता दूसरी तरफ स्क्रॉल करता है (सामग्री बढ़ रहा है), UIView गायब हो जाएगा जैसे कि यह केवल शीर्ष UITableViewCell था।UITableView में बढ़ते शीर्षलेख उपयोगकर्ता के रूप में

आप इस कार्यान्वयन को पथ में देख सकते हैं (टाइमलाइन और शीर्ष प्रोफ़ाइल चित्र खींचें, example at 0:15) और नया फेसबुक ऐप चेकइन (आस-पास के स्थानों की सूची से ऊपर बढ़ रहे मानचित्र के साथ)।

इस बारे में जाने का सबसे अच्छा तरीका सुनिश्चित नहीं है। मुझे लगता है कि एक समान प्रभाव प्राप्त करने के लिए आपको UIView को पहले सेल के रूप में रखना होगा। लेकिन this question मुझे स्क्रॉल के रूप में सेल की ऊंचाई का आकार बदलने की कोशिश करने के बारे में थोड़ा चिंतित है। सिद्धांत रूप में आकार बदलने की आवश्यकता होती है क्योंकि वे नीचे खींचते हैं, धक्का नहीं देते हैं, अगर यह केवल शीर्ष UITableViewCell है।

संपादित करें: वर्तमान कोड - rummad से सुझाव का उपयोग कर रहा contentOffset के लिए tableview पर एक मुख्यपथ पर्यवेक्षक जोड़ रहा है और उस आधार पर सेल की ऊंचाई का आकार बदलने, लेकिन यह जगह भर में कूद रहा है।

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ 
    if (self.tableView == (UITableView*)object) { 
     if ([keyPath isEqualToString:@"contentOffset"]) { 
      CGPoint scrollLoc = self.tableView.contentOffset; 
      if (scrollLoc.y < 0) { 
       NSLog(@"offset:%@", NSStringFromCGPoint(scrollLoc)); 
       headerSize = 100 - scrollLoc.y; 
       [self.tableView beginUpdates]; 
       [self.tableView endUpdates]; 
      } 
     } 
    } 
} 
+0

हेडर के अंदर एक और दृश्य डाल और उस खींच की कोशिश करो। जब मैंने हेडर के दृश्य के संदर्भ को संशोधित करने का प्रयास किया तो मुझे एक ही कूदने का मुद्दा था। – Stuart

उत्तर

12

वास्तव में ऐसा लगता है कि वहां कुछ पुस्तकालय हैं, और पहले टेबल सेल का उपयोग करने का कोई तरीका नहीं है। "लंबन" जादू Google शब्द प्रतीत होता था।

http://rowboatrevolution.com/2012/02/uitableview-parallax-background-a-la-path/ https://github.com/Rheeseyb/RBParallaxTableViewController

+0

ओपी जादुई Google शब्द "लंबन" के लिए नहीं पूछता है, लेकिन बढ़ते शीर्षलेख के लिए जो शीर्ष पर चिपकता है और तालिका के साथ बढ़ता है देखें खींचें (नीचे) –

4

अपने viewDidScroll: प्रतिनिधि विधि में अपने UITableView के लिए contentOffset ट्रैक। इसके बाद आप UIView के फ्रेम को तदनुसार सेट कर सकते हैं।

+0

क्या आप यहां कुछ नमूना कोड पोस्ट कर सकते हैं –

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