मैं UIButton
iOS पर एक बटन ( ) को क्लिक करने के बाद अक्षम करना चाहता हूं । मैं iOS के लिए विकसित करने के लिए नया हूं लेकिन मुझे लगता है कि उद्देश्य पर समान कोड - C यह है:
button.enabled = NO;
लेकिन मैं ऐसा तेजी से नहीं कर सका।
मैं UIButton
iOS पर एक बटन ( ) को क्लिक करने के बाद अक्षम करना चाहता हूं । मैं iOS के लिए विकसित करने के लिए नया हूं लेकिन मुझे लगता है कि उद्देश्य पर समान कोड - C यह है:
button.enabled = NO;
लेकिन मैं ऐसा तेजी से नहीं कर सका।
जवाबों:
NO
स्विफ्ट के लिए बूलियन मूल्य है false
।
button.isEnabled = false
करना चाहिए।
यहाँ के लिए स्विफ्ट प्रलेखन है UIControl
की isEnabled
संपत्ति।
यदि आप चाहते हैं कि बटन "दबाए" उपस्थिति के बिना स्थिर रहे:
// Swift 2
editButton.userInteractionEnabled = false
// Swift 3
editButton.isUserInteractionEnabled = false
याद है:
1) आपका IBOutlet
है ->@IBOutlet weak var editButton: UIButton!
2) उपरोक्त कोड अंदर जाता है viewWillAppear
जिस तरह से मैं ऐसा करता हूं वह इस प्रकार है:
@IBAction func pressButton(sender: AnyObject) {
var disableMyButton = sender as? UIButton
disableMyButton.enabled = false
}
IBAction स्टोरीबोर्ड में आपके बटन से जुड़ा हुआ है।
यदि आपके पास आउटलेट के रूप में अपना बटन सेटअप है:
@IBOutlet weak var myButton: UIButton!
तब आप सक्षम गुणों का उपयोग कर सकते हैं। बटन नाम पर संकेतन:
myButton.enabled = false
स्विफ्ट 3 पर एक बटन अक्षम करें:
yourButton.isEnabled = false
उन लोगों के लिए जिन्होंने Googled ने "एक बटन अक्षम करें" लेकिन अधिक उपयोग किए जाने के मामले हो सकते हैं:
दृश्य प्रभाव के साथ अक्षम करें: जैसा कि दूसरों ने कहा है, यह बटन को दबाए जाने से रोकेगा और सिस्टम स्वचालित रूप से इसे अक्षम दिखाई देगा:
yourButton.isEnabled = false
दृश्य प्रभाव के बिना अक्षम करें: क्या आप किसी ऐसे मामले में बटन का उपयोग कर रहे हैं, जहां उसे सामान्य दिखना चाहिए, लेकिन स्पर्श पर प्रतिक्रिया करके पसंद बटन का व्यवहार नहीं करना चाहिए? इसे इस्तेमाल करे!
yourButton.userInteractionEnabled = false
अक्षम किए बिना छिपाएं: यह दृष्टिकोण बटन को अक्षम किए बिना छुपाता है (अदृश्य लेकिन फिर भी टैप किया जा सकता है)
yourButton.alpha = 0.0
निकालें: यह पूरी तरह से दृश्य को हटा देगा:
yourButton.removeFromSuperView()
एक बटन के पीछे कुछ टैप करें: क्या दो बटन स्टैक्ड हैं और आप चाहते हैं कि शीर्ष बटन अस्थायी रूप से कार्य करे जैसे कि यह वहां नहीं है? यदि आपको फिर से शीर्ष बटन की आवश्यकता नहीं होगी, तो इसे हटा दें। यदि आपको फिर से इसकी आवश्यकता होगी, तो इसकी ऊँचाई या चौड़ाई को 0 पर संघनित करने का प्रयास करें!
आप एक बटन का उपयोग / संपत्ति को सक्षम / अक्षम कर isEnabled
सकते isUserInteractionEnabled
हैं।
दो के बीच का अंतर है:
isEnabled
UIControl (UIButton के सुपर क्लास) की एक संपत्ति है और इसमें सक्षम / अक्षम करने के दृश्य प्रभाव (यानी धूसर हो गए) हैं
isUserInteractionEnabled
UIView (UIControl के सुपर क्लास) की एक संपत्ति है और इसका कोई दृश्य प्रभाव नहीं है, लेकिन इस उद्देश्य को प्राप्त करता है
उपयोग:
myButton.isEnabled = false // Recommended approach
myButton.isUserInteractionEnabled = false // Alternative approach
Value of type '(AnyObject) -> ()' has no member 'isEnabled'
मान लीजिए कि स्विफ्ट 4 में आपके पास IBAction
इस तरह से एक सेगमेंट के लिए एक बटन सेट है @IBAction func nextLevel(_ sender: UIButton) {}
और आपके ऐप (यानी एक टाइमर, गेमप्ले, आदि) के भीतर होने वाली अन्य क्रियाएं हैं। सेग बटन को अक्षम करने के बजाय, आप अपने उपयोगकर्ता को उस सेग का उपयोग करने का विकल्प देना चाह सकते हैं, जबकि अन्य क्रियाएं अभी भी हो रही हैं और एपीपी को हटाने के बिना । ऐसे:
var appMode = 0
@IBAction func mySegue(_ sender: UIButton) {
if appMode == 1 { // avoid crash if button pressed during other app actions and/or conditions
let conflictingAction = sender as UIButton
conflictingAction.isEnabled = false
}
}
कृपया ध्यान दें कि आपके पास संभवतः अन्य शर्तें होंगी if appMode == 0
और / या if appMode == 1
जो अभी भी होंगी और mySegue
बटन के साथ संघर्ष नहीं होगा । इस प्रकार, एक दुर्घटना को दूर करना ।
बटन को स्विफ्ट 4 में कोड द्वारा डिसेबल किया जा सकता है
@IBAction func yourButtonMethodname(sender: UIButon) {
yourButton.isEnabled = false
}
Value of type '(AnyObject) -> ()' has no member 'isEnabled'