2015-11-22 10 views
8

उपयोगकर्ता बटन दबाए जाने के बाद स्क्रीन पर एक संदेश प्रदर्शित करना चाहता हूं। मैं फिर एक सेकंड के बाद संदेश गायब होना चाहता हूँ। अधिमानतः यह एक गायब गायब होने की बजाय दूर फीका होगा।कुछ सेकंड के लिए स्क्रीन पर एक संदेश कैसे दिखाएं?

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

मैं वर्तमान में इसे प्राप्त करने के लिए एनएसटीमर और यूआई लेबल का उपयोग करने की योजना बना रहा हूं, और मैं बस एक कठिन गायब होने के साथ रहूंगा। क्या यह करने का सबसे अच्छा तरीका है?

संपादित करें: स्पष्टीकरण के लिए, संदेश को हर बार बटन को धक्का देने के लिए आवश्यक नहीं होगा। मुझे पूरी तरह से यकीन नहीं है कि यह प्रासंगिक है या नहीं।

+3

आप एक animationWithDuration और एक पूर्णता हैंडलर एनीमेशन के मूल्यों को रीसेट करने के साथ ऐसा कर सकते हैं। – mn1

+0

आपको लगता है कि दिखाई देते हैं और दूर नहीं हो पाती है जब करने के लिए इस्तेमाल अर्द्धपारदर्शी काला, गोल रेक्ट संकेतों पर उन सफेद पाठ की तरह कुछ चाहता हूँ जैसे एक्सकोड कुछ साल पहले एक परियोजना के निर्माण में सफल रहा। या जब आप कोई टिप्पणी अप-वोट करते हैं तो आईओएस स्टैक एक्सचेंज ऐप क्या करता है? –

+0

@NicolasMiari मैं इसे एक powerpoint स्लाइड पर कुछ पाठ कि मौजूदा स्लाइड पर पधारते हैं और फिर एक दूसरे के बाद धूमिल हो जाता है, जबकि स्लाइड एक ही रहता है की तरह होना चाहते हैं। फर्क सिर्फ इतना है की जा रही है कि मेरी "स्लाइड" एक बटन है कि पाठ की उपस्थिति का कारण बनता है शामिल हैं। – FlashDrive

उत्तर

3

मैं पूरा करने के लिए मैं क्या शोध क्या टिप्पणी में से सुझाव दिया गया था के बाद चाहता था कर रहा था @ MN1। मैंने लेबल को फीका करने के लिए एनिमेट किया था। यहाँ कुछ उदाहरण कोड है:

myLabel.hidden = false 
UIView.animateWithDuration(0.5, animations: {() -> Void in 
    self.myLabel.alpha = 0 
}) 
4

यह स्क्रीन पर अलर्ट व्यू दिखाता है और ऑटो 1 सेकंड के बाद बंद हो जाता है। आप समय निर्धारित कर सकते हैं।

var alert:UIAlertController! 
    func showAlert() { 
     self.alert = UIAlertController(title: "Alert", message: "Wait Please!", preferredStyle: UIAlertControllerStyle.Alert) 
     self.presentViewController(self.alert, animated: true, completion: nil) 
     NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("dismissAlert"), userInfo: nil, repeats: false) 
    } 

    func dismissAlert(){ 
     // Dismiss the alert from here 
     self.alert.dismissViewControllerAnimated(true, completion: nil) 
    } 
+0

एक सूचना वास्तव में बटन को कवर किया और पूरे एप्लिकेशन के साथ बातचीत नहीं कर पाएगा। मैं एक तरह से बस के बजाय उपयोगकर्ता एक निकला हुआ चेतावनी के लिए कुछ पाठ प्रदर्शित करने के लिए देख रहा हूँ। – FlashDrive

6

स्विफ्ट 3 समाधान:

// Define a view 
    var popup:UIView! 
    func showAlert() { 
    // customise your view 
    popup = UIView(frame: CGRect(x: 100, y: 200, width: 200, height: 200)) 
    popup.backgroundColor = UIColor.redColor 

    // show on screen 
    self.view.addSubview(popup) 

    // set the timer 
    Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(self.dismissAlert), userInfo: nil, repeats: false) 
    } 

    func dismissAlert(){ 
    if popup != nil { // Dismiss the view from here 
     popup.removeFromSuperview() 
    } 
    } 

स्विफ्ट 2 समाधान:

// Define a view 
    var popup:UIView! 
    func showAlert() { 
    // customise your view 
    popup = UIView(frame: CGRect(x: 100, y: 200, width: 200, height: 200)) 
    popup.backgroundColor = UIColor.redColor() 

    // show on screen 
    self.view.addSubview(popup) 

    // set the timer 
    NSTimer.scheduledTimerWithTimeInterval(3.0, target: self, selector: Selector("dismissAlert"), userInfo: nil, repeats: false) 
    } 

    func dismissAlert(){ 
    // Dismiss the view from here 
    popup.removeFromSuperview() 
    } 

    // Don't forget to call showAlert() function in somewhere 
1

इस कोड के साथ आईओएस 10 धन्यवाद कम हो गया @fatihyildizhan को

fun showAlert() { 
    let alert = UIAlertController(title: "Alert", message: "Wait Please!", preferredStyle: .alert) 
    self.present(alert, animated: true, completion: nil) 
    Timer.scheduledTimer(withTimeInterval: 3.0, repeats: false, block: { _ in alert.dismiss(animated: true, completion: nil)}) 
} 
संबंधित मुद्दे