2012-09-05 10 views
6

यहां एक बहुत ही सरल सवाल बनाएं। आप इस तरह एक दृश्य कैसे बनाते हैं? enter image description hereक्लिक-थ्रू ओवरले निर्देश दृश्य

इसे पहली बार उपयोगकर्ता को ऐप के इस भाग को चलाने के लिए ओवरले करना होगा और उपयोगकर्ता इसे टैप करने के बाद हमेशा के लिए हटा दिया जाना चाहिए। मैं समझता हूं कि यह UIImageView होना चाहिए, लेकिन आप इसे सक्रिय कैसे करते हैं और फिर इसे हमेशा से दृश्य से हटा दें?

उत्तर

9

UIView कक्षा के addSubView विधि का उपयोग करके आप अपने ऐप प्रतिनिधि के didFinishLaunchingWithOptions विधि में अपने ऐप लॉन्च के ठीक बाद अपना सबव्यूव जोड़ सकते हैं।

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    UIImageView *imageView = [[UIImageView alloc] 
    initWithImage:[UIImage imageNamed:@"yourimage.png"]]; 
    [self.window addSubview:imageView]; 

    UITapGestureRecognizer * recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
    recognizer.delegate = self; 
    [imageView addGestureRecognizer:recognizer]; 
    imageView.userInteractionEnabled = YES; 
    self.imageView = imageView; 
} 

- (void) handleTap:(UITapGestureRecognizer *)recognize 
{ 
    [self.imageView removeFromSuperView]; 
} 

ध्यान दें कि आप एक संपत्ति handleTap विधि में अपने imageView संदर्भित करने के लिए की आवश्यकता होगी: यहाँ आप कैसे आगे बढ़ना सकता है के कुछ कोड के टुकड़े कर रहे हैं।

+0

धन्यवाद, आदमी! आकर्षण की तरह काम करता है! –

+0

मुझे असंगत प्रकार 'AppDelegate *' से आईडी "UIGestureRecognizerDelegate> आईडी" पर असाइन किया गया है - कोई सलाह? धन्यवाद! – Ernest

+0

आपको अपनी एपडिलेगेट को यूआईजीएस्टर रिकॉग्नाइज़र डिलीगेट को इस तरह कुछ घोषित करके अनुपालन करने की आवश्यकता है: yourAppDelegate() tiguero

1

मेरे विचारों को एक NSUserDefault चर सेट किया जाएगा और इसे एप्लिकेशन पर जांचेंडिफिनिश लॉन्चिंगविथऑप्शन या आपके ऐप में कहीं और समझ में आता है। जब आपका चर सच बनाम झूठा होता है तो आप एक अलग दृश्य को दबा सकते हैं।

4

UIView में आपके पास आवश्यक सभी विधियां हैं, उदा।

  • कॉल [myView addSubview:imgView] वर्तमान दृश्य करने के लिए छवि दृश्य जोड़ने के लिए (myView)
  • कॉल [imgView removeFromSuperview] जब खत्म (यानी दोहन करने के लिए जवाब में या एक टाइमर के बाद)

imgView के बारे में सुनिश्चित userInteractionEnabled संपत्ति बनाओ NO पर ताकि स्पर्श myView पर पारित हो जाएं।

+0

क्यों उपव्यू टैप को संभालने का अधिकार नहीं है? – tiguero

+1

आप कर सकते हैं, लेकिन सवाल "क्लिक-थ्रू" व्यवहार के लिए पूछता है, इसलिए मुझे लगता है कि पोस्टर को स्पर्श को संभालने के लिए पृष्ठभूमि दृश्य होना पसंद है। –

+0

ठीक है उसका शीर्षक मिस्लीडिंग है। उन्होंने हालांकि उल्लेख किया: "इसे पहली बार उपयोगकर्ता को ऐप के इस भाग को चलाने के लिए ओवरले करना होगा और उपयोगकर्ता द्वारा इसे टैप करने के बाद हमेशा के लिए हटा दिया जाना चाहिए" इसलिए वह स्पष्ट रूप से ओवरले व्यू – tiguero

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