/ / सभी दृश्य घटकों के लिए इशारा पहचानकर्ता लागू करें? - उद्देश्य-सी, uiview, uigesturerecognizer, uiswipegesturerecognizer

सभी दृश्य घटकों को इशारा पहचानकर्ता लागू करें? - उद्देश्य-सी, uiview, uigesturerecognizer, uiswipegesturerecognizer

क्या एक दृश्य में एक इशारा पहचानकर्ता को लागू करना संभव है और इसे अन्य सभी यूआई घटकों के लिए प्रचारित करना संभव है? अगर मैं ऐसा कुछ करता हूं, तो यह काम नहीं करता है:

  UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
swipe.direction = UISwipeGestureRecognizerDirectionRight;

[self.view addGestureRecognizer:swipe];
[TitleLabel addGestureRecognizer:swipe];
[DescLabel addGestureRecognizer:swipe];
[_TopView addGestureRecognizer:swipe];
[_BottomView addGestureRecognizer:swipe];
[_ScrollView addGestureRecognizer:swipe];
[_TableView addGestureRecognizer:swipe];

[swipe release];

मैं यह कैसे कर सकता हूं?

मुझे अपने विचार पर एक पारदर्शी दृश्य जोड़ने की ज़रूरत है, जिसमें सभी वस्तुओं को शामिल किया गया है? या ऐसा करने का एक बुद्धिमान तरीका है?

उत्तर:

जवाब के लिए 0 № 1

आपके निष्कर्ष सही हैं: पूर्ण घटकों के लिए, कई घटकों के लिए एक ही पहचानकर्ता ...

NSInteger count = 1;
NSInteger total = [[self.view subviews] count];
for (id obj in [self.view subviews])
{
NSLog(@"testing object %i of %i", count, total);
count++;

if ([obj respondsToSelector:@selector(addGestureRecognizer:)])
{
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
swipe.direction = UISwipeGestureRecognizerDirectionRight;
[obj addGestureRecognizer: swipe];
[swipe release];
NSLog(@"swipe added");
}
}

एकमात्र मुद्दा जो मैं चाहता हूं वह यह है कि यदि आप किसी ऑब्जेक्ट को पहचानकर्ता को लागू करना चाहते हैं, तो उन दृश्यों के अंदर एम्बेडेड हैं जो पहले से ही सबव्यू हैं self.view। आपको तब जांच करने की आवश्यकता है कि क्या पाया गया सबव्यूव self.view वर्ग प्रकार का था UIView, और यदि यह उन विचारों के माध्यम से फिर से शुरू किया गया था "सबव्यू, इत्यादि।