2011-01-21 9 views
6

साथ मैं अभी शुरुआत कर रहा हूँ जब यह पेज नियंत्रण की बात आती है, और यही कारण है मुझे यकीन है कि मेरे शीर्षक मैं क्या चाहते हैं के साथ सहमत हैं 100% नहीं तो हूँ। मुझे लगता है कि जब उपयोगकर्ता स्क्रीन पर स्वाइप दृश्य एक और दृश्य और स्क्रीन अपने आप को अद्यतन करेगा के तल पर UIPageController पर स्विच होगा एक UIPageControl बनाना चाहते हैं। साथ ही, मेरा अनुरोध और भी भ्रमित करने के लिए, मुझे स्क्रीन के निचले हिस्से में एक टैब बार चाहिए जो दृश्यों के रूप में बदलते रहेंगे। http://img.slidetoplay.com/screenshots/ramp-champ_5.jpgUIViews UIPageControl

तल पर पट्टी डाल रहता है, जबकि स्क्रीन चाल पर आइटम के बाकी:

इस का एक महान उदाहरण Iconfactory के रैंप विजेता है। ऐसा करने का सबसे आसान तरीका क्या होगा?

संपादित करें: मैं जानता हूँ कि मैं एक UISrollView उपयोग करने के लिए, मैं सिर्फ यह लागू करने के बारे में जाने के लिए पता नहीं कैसे ...

उत्तर

22

मेरा मानना ​​है कि के लिए वास्तव में एक UIScrollView pagingEnabled करने के लिए सेट के साथ है आप जो खोज रहे हैं हाँ। आप नियमित UITabBar के ऊपर एक दृश्य के रूप में स्क्रॉलव्यू छोड़ सकते हैं। छोटे बिंदुओं को पाने के लिए आप यूआईपीएज कंट्रोल का उपयोग करेंगे। जब आप स्क्रॉल व्यू के उचित प्रतिनिधि विधि को कार्यान्वित करके UIScrollView किसी पृष्ठ पर स्क्रॉल करते हैं, तो आप इसे प्रोग्रामेटिक रूप से अपडेट कर सकते हैं, शायद -scrollViewDidScroll:।

मान लें कि आप दो ivars है: scrollview और pageControl। जब आप जानते हैं कि आपके स्क्रॉल व्यू के कितने पेज होंगे, तो आप scrollView की सामग्री का आकार सेट कर सकते हैं। यह scrollView की सीमाओं का एक बहु होना चाहिए। उदाहरण के लिए, यदि पृष्ठों की संख्या स्थिर है आप इसे अपने -viewDidLoad में हार्डकोड कर सकते हैं ...

- (void)viewDidLoad { 
    // Any other code. 

    scrollView.pagingEnabled = YES; 
    scrollView.contentSize = CGSizeMake(scrollView.bounds.size.width * 3, scrollView.bounds.size.height); // 3 pages wide. 
    scrollView.delegate = self; 
} 

फिर, अपने छोटे डॉट्स अद्यतन करने के लिए ...

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

    CGFloat pageWidth = scrollView.bounds.size.width; 
    NSInteger pageNumber = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    pageControl.currentPage = pageNumber; 
} 
+0

धन्यवाद आवश्यक पदों पर सामग्री जोड़ने के लिए scrollviewDidScroll का उपयोग आप ऐसा करने के तरीके पर स्रोत कोड किसी भी प्रकार का है? (मुझे कोई नहीं मिल रहा है) –

+0

@ एंडी बी, हां। मैंने अपना जवाब एक मानक दृष्टिकोण के साथ संपादित किया। –

+0

मुझे अभी वास्तव में गूंगा लगता है; यह अभी भी मजाक नहीं कर रहा है। –

2

आप एक उपयोग करने की आवश्यकता UIScrollView

मान लिया जाये कि आप scrollview

आप होगा बुलाया

int amountOfFrames = 10; 
    scrollView.pagingEnabled = TRUE; 
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * amountOfFrames, scrollView.frame.size.height); 
    scrollView.delegate = self; 
एक नामित इवर है तो, ताकि आप अद्यतन कर सकते हैं अपने पृष्ठ नियंत्रण आप इसे में, यदि आप जिस सामग्री को प्रदर्शित करेगा जो सामग्री आप इन scrollview के अंदर स्क्रॉल होना चाहता हूँ रखना आवश्यक आदर्श lazyload आवश्यक प्रतिनिधि तरीकों को लागू करने की जरूरत है

- (void)scrollViewDidScroll:(UIScrollView *)sender 
{ 
    // Switch the indicator when more than 50% of the previous/next page is visible 
    CGFloat pageWidth = scrollView.frame.size.width; 
    int page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    pageControl.currentPage = page; 
} 

ढेर स्मृति का एक बहुत आवश्यकता होगी,, हटाने और

+0

मदद के लिए धन्यवाद, लेकिन वह didn ' मेरे लिए बहुत मतलब नहीं है। मैं अभी केवल सात महीने के लिए विकास कर रहा हूं। क्या आपके पास कोई स्रोत कोड है? –

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