2016-03-29 8 views
6

मैं UIButton को उपclass करना चाहता हूं और इसमें isActive एक संपत्ति जोड़ना चाहता हूं, जो Bool है जो बटन के स्वरूप को बदलता है (यह डिफ़ॉल्ट .enabled प्रॉपर्टी से संबंधित नहीं है)।स्विफ्ट में बटन प्रकार के साथ UIButton की init को ओवरराइड कैसे करें?

हालांकि, प्रारंभ होने पर भी मैं बटन प्रकार सेट करना चाहता हूं। विशेष रूप से, मैं यह बहुत प्रारंभ करने में है जैसे कि यह UIButton में है, की तरह हैं:,

let button = MyButton(type: .Custom) 

हालांकि क्योंकि .buttonType एक है रीड-ओनली, मैं सिर्फ यह पसंद करती है:

convenience init(type buttonType: UIButtonType) { 
    buttonType = buttonType 
    self.init() 
} 

यह spits एक त्रुटि: Cannot assign to value: 'buttonType' is a 'let' constant (मैंने पहले ही आवश्यक init(coder:) लागू किया है)।

तो प्रारंभ होने पर मैं .buttonType कैसे सेट कर सकता हूं?


नोट: कस्टम गुण भी अन्य कार्यों में इस्तेमाल किया जाएगा यह भीतर तर्क को बदलने के लिए, तो मैं बजाय दो कार्यों को परिभाषित करने को बदलने के लिए की संपत्ति उठाया,।

+0

'buttonType = buttonType' तेजी में है कि कोई मतलब है? – Fonix

+0

'self.buttonType = buttonType' – Chris

+0

@Chris का प्रयास करें, यह एक ही परिणाम मिला। – Blaszard

उत्तर

-8

buttonType केवल पढ़ने के लिए है, तो आप UIButton की सुविधा के प्रारंभकर्ता के माध्यम से प्रकार सेट करना होगा:

convenience init(type buttonType: UIButtonType) { 
    self.init(type: buttonType) 
    // assign your custom property 
} 
+0

नहीं। अंतहीन पाश। –

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