2012-04-02 14 views
7

की अनुमति नहीं दे सामग्री मैं निम्नलिखित की तरह सक्षम पृष्ठन के साथ एक UIScrollView है:UIScrollView उपयोगकर्ता संपर्क

container = [[UIScrollView alloc] initWithFrame:kScrollViewFrame]; 
[container setDelegate:self]; 
[container setShowsHorizontalScrollIndicator:YES]; 
[container setShowsVerticalScrollIndicator:NO]; 
[container setClipsToBounds:YES]; 
[container setPagingEnabled:YES]; 
[container setDecelerationRate:UIScrollViewDecelerationRateFast]; 
[container setBounces:NO]; 
[container setUserInteractionEnabled:NO]; 
[container setCanCancelContentTouches:NO]; 
[container setDelaysContentTouches:NO]; 
UIScrollView करने के लिए

, मैं कई UIWebViews जोड़ सकते हैं और उनकी बातचीत करने के लिए सक्षम हाँ की तरह तो निर्धारित किया है।

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 

     self.frame = frame; 
     self.userInteractionEnabled = YES; 
    } 
    return self; 
} 

जो पेजिंग को तोड़ता है और UIScrollView पर सभी स्पर्श करता है। यदि मैं उपयोगकर्ता इंटरैक्शन को NO पर सक्षम करता हूं, तो पेज काम करता है, लेकिन मैं UIWebView में टेक्स्ट को हाइलाइट नहीं कर सकता। मैंने UIScrollView को निम्न की तरह उपclassing करने की कोशिश की, लेकिन एक ही परिस्थितियां होती हैं। कोई उपाय?

- (id)initWithFrame:(CGRect)frame 
{ 
    NSLog(@"init"); 
    return [super initWithFrame:frame]; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesBegan"); 

    [[self nextResponder] touchesBegan:touches withEvent:event]; 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesMoved"); 

    [[self nextResponder] touchesMoved:touches withEvent:event]; 
} 

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesEnded"); 
    [[self nextResponder] touchesEnded:touches withEvent:event]; 
} 
+0

क्या यह आप प्राप्त करना चाहते हैं: आप स्पर्श रूप में अच्छी तरह रद्द करने की अनुमति देने के है? कृपया और स्पष्ट बताएं। –

+0

मुझे पृष्ठ पर स्क्रॉल दृश्य की आवश्यकता है और उपयोगकर्ता वेबवीज़ पर पाठ का चयन करने में सक्षम होने के लिए (जो स्क्रॉलव्यू के सबव्यूव हैं) वेबव्यू को स्क्रॉल करने की आवश्यकता नहीं है, बस अपना टेक्स्ट चुने जाने में सक्षम होना चाहिए। –

+0

मैंने अपनी आवश्यकताओं को दर्शाने के लिए अपना जवाब संपादित कर लिया है, ऐसा लगता है कि यह मेरे लिए काम कर रहा है। –

उत्तर

10

कंटेनर पर उपयोगकर्ता इंटरैक्शन को अक्षम करने से प्रभावी रूप से इसे सबव्यूज़ पर अक्षम कर दिया जाता है। आपको इसे सक्षम करना चाहिए, जिससे टच इवेंट दृश्य पदानुक्रम को फैलाने का कारण बनता है;

[container setUserInteractionEnabled:YES]; 

आप UIWebView पर स्क्रॉल अक्षम करना चाहते हैं सिर्फ अपनी UIScrollView

yourWebView.scrollView.scrollEnabled = NO; 

अंदर मिल मुझे लगता है मैं कर सकते हैं दोनों "पृष्ठ के माध्यम से" UIScrollView अपने डिवाइस पर यह परीक्षण किया है और कर दिया है और पर पाठ का चयन UIWebView।

संपादित करें:

मुझे यह काम मिल गया! आप स्क्रॉल दृश्य स्क्रॉल, वेब दृश्य स्क्रॉल, पेजिंग, का चयन करने की आवश्यकता है,

[container setCanCancelContentTouches:YES]; 
+0

मैंने यह कोशिश की है और यह वेबव्यू पर उपयोगकर्ता इंटरैक्शन को तोड़ता है जो स्क्रॉलव्यू के बच्चे हैं। –

+0

मैंने यह कोशिश की और अब मैं स्क्रॉल नहीं कर सकता, यहां तक ​​कि uiscrollview का सामग्री आकार 10,000px है और फ्रेम स्क्रीन चौड़ाई/ऊंचाई (768 x 1024) पर सेट है संपादित करें: असल में, यह काम करता है अगर मैं कई सेकंड तक दबाता हूं और स्वाइप करने की कोशिश करो। पेज के लिए यह बहुत मुश्किल है। क्या आप इस मुद्दे का सामना कर रहे हैं? –

+0

एक स्वाइप पहचानकर्ता का उपयोग किया और खुद को पेजिंग एनिमेटेड। –