मैं नए याहू मौसम ऐप में पाए गए प्रभाव के समान प्रभाव डालने की कोशिश कर रहा हूं। असल में, UIPageViewController
में प्रत्येक पृष्ठ की पृष्ठभूमि छवि होती है, और जब पृष्ठ दृश्य के माध्यम से स्क्रॉल करते हैं, तो छवि का स्थान केवल आधा गति तक स्क्रॉल करता है। मुझे यह कैसे करना है? मैंने सोचा कि मैं वर्तमान ऑफसेट प्राप्त करने के लिए UIPageViewController
में कुछ प्रकार के प्रतिनिधि विधि का उपयोग कर सकता हूं और फिर उस तरह की छवियों को अपडेट कर सकता हूं। एकमात्र समस्या यह है कि मुझे यह बताने के लिए कोई रास्ता नहीं मिल रहा है कि UIPageViewController
स्क्रॉल किया जा रहा है या नहीं! क्या इसके लिए कोई विधि है? धन्यवाद!बताएं कि जब एक UIPageViewController स्क्रॉल कर रहा है (किसी छवि के लंबन स्क्रॉलिंग के लिए)
उत्तर
for (UIView *view in self.pageViewController.view.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
[(UIScrollView *)view setDelegate:self];
}
}
यह आप सभी मानक स्क्रॉल दृश्य एपीआई तरीकों तक पहुँच देता है। और यह निजी ऐप्पल एपीआई का उपयोग नहीं कर रहा है।
मैं subviews के माध्यम से traversing कहा, 100% UIPageViewController
के भीतरी स्क्रॉल दृश्य चेतावनी लगता है: scrollview.contentOffset से सावधान रहें। यह नया पृष्ठ
के नियंत्रक स्क्रॉल के रूप में रीसेट करता है आप persision scrollview
ट्रैकिंग ऑफसेट और ऐसे सामान, यह संग्रह दृश्य ही है और पेजिंग सक्षम के रूप में आकार कोशिकाओं के साथ एक UICollectionViewController
उपयोग करने के लिए बेहतर होगा की जरूरत है।
मेरा अनुमान है कि यह एक UIPageViewController नहीं है, बल्कि एक पेजेड UIScrollView है। UIScrollView आपको लगातार बार-बार प्रतिनिधि पद्धति देता है जो स्क्रॉलिंग के रूप में क्या हो रहा है ट्रैक करता है।
वैकल्पिक रूप से, आप कि UIPageViewController चुपके से उपयोग कर रहा है पृष्ठांकित UIScrollView उपयोग करने में सक्षम हो सकता है, लेकिन आप कुछ तोड़ सकता है, और मुझे यकीन है कि कैसे एप्पल इसके बारे में लगेगा नहीं हूँ।
एक UIPageViewController के साथ ऐसा करने के लिए एक तरीका होना चाहिए। अगर मैं इसका इस्तेमाल करता हूं तो यह सब कुछ सरल बनाता है। याहू ऐप ऐसा लगता है कि यह यूआईपीएज व्यू कंट्रोलर का भी उपयोग करता है। UIViewController के भीतर से स्क्रीन को ऑनस्क्रीन पाने का कोई तरीका है? –
क्या UIPageViewController मूल रूप से केवल एक फैंसी UIScrollView नहीं है? –
यह आपके लिए आसान हो सकता है, लेकिन मैं आपको आश्वासन देता हूं कि अकेले UIScrollView के साथ हम स्क्रॉल-शैली UIPageViewController जैसे स्क्रॉल-शैली UIPageViewController मौजूद होने से पहले सामान कर रहे थे। पूरे डब्ल्यूडब्ल्यूडीसी वीडियो हैं जो यह समझाने के लिए समर्पित हैं कि इसे कैसे किया जाए। – matt
जो आप खोज रहे हैं उसे लंबन स्क्रॉलिंग कहा जाता है, आप कई पुस्तकालयों को पा सकते हैं जो आपकी मदद कर सकते हैं।
संपादित करें: मैट सही है यह एक जवाब नहीं है, केवल एक संकेत है।
एक पृष्ठभूमि छवि है कि आपके UIPageViewController आप प्रतिनिधि तरीकों का उपयोग करना चाहिए के पीछे रखना है कि यह पेशकश करते हैं एनिमेट के लिए::
-[id<UIPageViewControllerDelegate> pageViewController:willTransitionToViewControllers:]
-[id<UIPageViewControllerDelegate> pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:]
इन दोनों तरीकों के साथ आप स्क्रॉल का प्रतिशत की गणना कर सकते हैं (आप वैसे भी इसे पूरा करते हैं अपने सरणी में अपने नियंत्रकों की दुकान को पता है जो नियंत्रक पर आप के लिए स्क्रॉल और प्रतिशत मिलना चाहिए)
यह कोई जवाब नहीं है। – matt
आप इससे प्रतिशत कैसे प्राप्त करेंगे? –
आपको '- [एनएसएआरएआर इंडेक्सऑफ ऑब्जेक्ट:]' के साथ खोजे गए व्यू कंट्रोलर की स्थिति प्राप्त करनी चाहिए, फिर आप '- [एनएसएआरआरई गिनती] ' –
मैं यह कर जाएगा:
ऑब्जेक्टिव-सी
for (UIView *v in self.pageViewController.view.subviews) {
if ([v isKindOfClass:[UIScrollView class]]) {
((UIScrollView *)v).delegate = self;
}
}
और इस प्रोटोकॉल
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
स्विफ्ट को लागू
for view in self.pageViewController.view.subviews {
if let scrollView = view as? UIScrollView {
scrollView.delegate = self
}
}
और इस प्रोटोकॉल
func scrollViewDidScroll(scrollView: UIScrollView)
स्विफ्ट कोड टुकड़े के लिए धन्यवाद –
उपयोग @ पॉल स्निपेट को लागू -
for (UIView *v in self.pageViewController.view.subviews) {
if ([v isKindOfClass:[UIScrollView class]]) {
((UIScrollView *)v).delegate = self;
}
}
इस प्रोटोकॉल को लागू करने के लिए: -(void)scrollViewDidScroll:(UIScrollView *)scrollView
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint point = scrollView.contentOffset;
float percentComplete;
percentComplete = fabs(point.x - self.view.frame.size.width)/self.view.frame.size.width;
NSLog(@"percentComplete: %f", percentComplete);
}
यह आपको पुस्तक का प्रतिशत पूरा होने देता है। हैप्पी कोडिंग!
स्विफ्ट 3 में आप यह भी कम लिख सकते हैं:
if let scrollView = self.pageViewController.view.subviews.first(where: { $0 is UIScrollView }) as? UIScrollView {
scrollView.delegate = self
}
extension UIPageViewController {
var scrollView: UIScrollView? {
return view.subviews.filter { $0 is UIScrollView }.first as? UIScrollView
}
}
का उपयोग करना:
pageController.scrollView?.delegate = self
- 1. लंबन स्क्रॉलिंग के लिए एक चिपचिपा शीर्षलेख जोड़ें - एंड्रॉइड
- 2. लंबन पृष्ठभूमि छवि के साथ एंड्रॉइड व्यूपेजर
- 3. क्षैतिज लंबन स्क्रॉलिंग UIScrollView आईओएस
- 4. छवि के लिए सीमित स्क्रॉलिंग
- 5. UIPageViewController: स्क्रॉलिंग के दौरान स्टेटस बार ऊंचाई को अनदेखा कर रहा है
- 6. स्क्रॉलिंग ऐप: UIPageViewController बनाम UIScrollView
- 7. लंबन स्क्रॉलिंग को कैसे कार्यान्वित करें?
- 8. असीमित स्क्रॉल UIPageViewController
- 9. लंबन स्क्रॉलिंग कैसे काम करता है?
- 10. अद्यतन कर रहा है DataGridView स्क्रॉल जब
- 11. एक (लंबवत) UIPageViewController को किसी अन्य (क्षैतिज) UIPageViewcontroller
- 12. इंट्रोजेएस स्क्रॉलिंग काम नहीं कर रहा है
- 13. UITableView के लिए स्क्रॉलिंग पृष्ठभूमि छवि?
- 14. कीथ क्लार्क का सीएसएस लंबन इनर्टियल/मोमेंटम मोबाइल पर स्क्रॉलिंग
- 15. वेबव्यू स्क्रॉल करने के लिए काम नहीं कर रहा है
- 16. स्क्रॉल करते समय स्क्रॉलिंग ढह गई टूलबार पर क्यों रुकती है? (छवि दिखाने के लिए विस्तार नहीं कर रहा है)
- 17. लाइव वॉलपेपर पृष्ठभूमि का लंबन प्रभाव स्क्रॉलिंग
- 18. कैसे बताएं कि ओपनएमपी काम कर रहा है या नहीं?
- 19. jQuery लंबन/स्क्रॉल घटनाक्रम प्रदर्शन
- 20. लंबन दृश्य स्क्रॉलिंग (याहू मौसम की तरह)
- 21. भयानक अंतराल जब लंबन प्रभाव
- 22. जांचें कि क्या उपयोगकर्ता ट्रैकपैड के साथ स्क्रॉल कर रहा है?
- 23. मैं कैसे बता सकता हूं कि स्क्रॉलिंग फलक जावास्क्रिप्ट में स्क्रॉल कर रहा है?
- 24. स्वचालित स्क्रॉल जब एक iPhone आवेदन के लिए एक UIWebView
- 25. UIPageViewController
- 26. UIPageViewController
- 27. स्क्रॉलिंग के लिए टेस्ट
- 28. सीएसएस लंबन पृष्ठभूमि छवि आईई में
- 29. (सीएसएस) एक पृष्ठभूमि छवि स्क्रॉल बाकी
- 30. यह पता लगाने के लिए कि UIScrollView स्क्रॉल कर रहा है या वह
यदि ऐप्पल अपने पृष्ठ दृश्य नियंत्रक के आर्किटेक्चर को बदलता है तो आप खराब हो जाते हैं। –
@ वानडुट्रान सहमत हुए, लेकिन तब तक, यह सब अच्छा है, और सबसे अच्छा दृष्टिकोण की तरह लगता है। मुझे कोई विकल्प नहीं दिख रहा है –
यह मेरे लिए पहला सबव्यू नहीं था, लेकिन दूसरा। इस कोड ने यह किया: 'अगर ([self.pageVC.view.subviews [1] प्रतिसाद देता है तो चयनकर्ता: @ चयनकर्ता (सेट डिलीगेट:)]) { [self.pageVC.view.subviews [1] setDelegate: self]; } ' – Whoa