2010-11-11 14 views
6

नहीं बदलता है मेरे पास UIPageControl है। जब मैं पृष्ठ को बदलने के लिए किसी बिंदु पर क्लिक करता हूं, तो कुछ भी नहीं होता है। दूसरा बिंदु हाइलाइट नहीं किया जाता है।UIPageControl स्पर्श का जवाब नहीं देता है, डॉट

यह ठीक काम करता है, हालांकि, जब मैं अपना UIScrollView स्क्रॉल करता हूं। उस स्थिति में दूसरा बिंदु हाइलाइट किया गया है।

pageControl = [[UIPageControl alloc] init] ; 
pageControl.center = CGPointMake(160.0f, 430.0f); 
pageControl.numberOfPages=nPages; 
pageControl.currentPage=0; 
pageControl.hidesForSinglePage = YES; 
pageControl.userInteractionEnabled =YES; 

[pageControl addTarget:self action:@selector(pageTurn:) forControlEvents:UIControlEventValueChanged]; 

[self.view addSubview:pageControl]; 

जब मैं पेज नियंत्रण मूल्य बदलता हूं तो इसे कॉल किया जाना चाहिए, लेकिन इसे कॉल नहीं किया जाता है क्योंकि यह स्पर्श का जवाब नहीं देता है।

- (void) pageTurn: (UIPageControl *) aPageControl 
{ 
    int whichPage = aPageControl.currentPage; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.3f]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    sv.contentOffset = CGPointMake(320.0f * whichPage, 0.0f); 
    [UIView commitAnimations]; 
} 

उत्तर

17

pagecontrol के फ्रेम (चौड़ाई और ऊंचाई) न सिर्फ केंद्र अन्यथा यह शून्य आयाम हैं और स्पर्श के लिए प्रतिक्रिया नहीं देता निर्धारित करें।

pageControl = [[UIPageControl alloc] 
       initWithFrame:CGRectMake(100, 430, 200, 50)]; 
pageControl.center = CGPointMake(160.0f, 430.0f); 
+1

यह काम नहीं करता है। मैंने पृष्ठों की संख्या 7 पर सेट की है। जब मैंने डॉट्स 2 और 3 पर क्लिक किया, तो उसने जवाब नहीं दिया। मैंने डॉट 4 पर क्लिक किया और यह जवाब दिया और जब तक मैं अंतिम बिंदु यानी 7 तक नहीं पहुंच गया तब तक इसे क्लिक करना जारी रखा। अब जब मैं डॉट 2 और 3 पर क्लिक करता हूं, तो यह प्रतिक्रिया देता है !! –

+1

@pratikshabhisikar: उत्तर विशेष रूप से एलेक्स एल की समस्या को हल करने के लिए था। निस्संदेह यह नहीं है और प्रत्येक UIPageControl समस्या का उत्तर नहीं हो सकता है। यदि यह आपकी विशिष्ट स्थिति को हल करने के लिए नहीं होता है, तो आपकी समस्या का कारण और समाधान अलग होना चाहिए और डाउनवोट को उचित ठहराना नहीं है। – Anna

+1

मैं एक फ्रेम सेट किए बिना [[UIPageControl alloc] init] कर रहा था क्योंकि मुझे हमेशा लगता है कि UIPageControl आकार स्वचालित रूप से फिट हो जाता है। और मैं गलत था! [[UIPageControl alloc] initWithFrame: CGRect] ने चाल बनाई। स्व-परीक्षा! – DZenBot

4

मुझे हाल ही में मेरे ऐप में वही लक्षण थे। मेरा समाधान दृश्य पदानुक्रम (जेड-इंडेक्स, यदि आप करेंगे) में UIPageControl को ऊपर ले जाना था ताकि यह रूट दृश्य के अंदर UIScrollView से ऊपर हो। यदि यह से ऊपर नहीं है तो यह स्पर्श नहीं होगा, भले ही ऐसा लगता है कि यह दिखाई दे रहा है।

मैं कि क्या यह आपकी समस्या है यकीन नहीं है, लेकिन सिर्फ मैं में झंकार होगा सोचा।

2

कभी कभी यह सब ओवरलैपिंग subviews के सामने करने के लिए pageControl लाने के लिए मदद करता है।

कि मेरे मामले में छल था:

[self.view bringSubviewToFront: pageControl]; 
2

कभी-कभी जब pagecontrol चौड़ाई बहुत छोटा है यह भी हो सकता है। पेजस्ट्रक्चर घटक की चौड़ाई को काफी बड़े होने के लिए सेट करें, उदाहरण के लिए। 320. फिर यह बेहतर काम करना चाहिए।

+0

आपकी टिप्पणी "मुझे जगाएं" और मैंने पेज को अपने मूल दृश्य की चौड़ाई पर नियंत्रित किया है, और अब टैप का जवाब बहुत अच्छा है। – user1105951

+0

अच्छा! मुझे यह जानकर खुशी हुई। – flame3

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