2012-05-28 11 views
6

उद्देश्य-सी और आईओएस विकास के लिए नया, यहां एक हाथ से प्यार होगा!आईबीओलेटलेट चयन में लेबल का एक गुच्छा कैसे छिपाना है?

मैं कुछ कोड ऐसी है कि

IBOutletCollection(UILabel) NSArray *allLabels; 

आईबी में मैं इस संग्रह है, जहां मैं एक निश्चित हालत के लिए उन्हें छिपाने के लिए चाहते हैं कि मेरे विचार में मेरे सभी लेबल ऊपर लिंक कर लिया है ऊपर लिखा है। हालांकि, मुझे यकीन नहीं है कि ऐसा कैसे करें। जाहिर है कोई एक लेबल को छिपाने के लिए मैं

labelX.hidden = YES; 

का उपयोग करेंगे, लेकिन यह आदर्श नहीं है मुझे एक संग्रह के बिना यह करने के लिए के लिए, जैसा कि मैंने छिपाने के लिए कई लेबल नहीं है।

आपकी युक्तियों के लिए अग्रिम धन्यवाद!

उत्तर

8

इस कोशिश ...

[allLabels setValue:[NSNumber numberWithBool:YES] forKey:@"hidden"]; 
+0

@Vladimir जो होगा तेजी से हो ..? एक mit3z द्वारा या मेरे द्वारा सुझाव दिया ..? जिज्ञासा के कारण। –

+0

कुछ त्वरित परीक्षण किए, इसलिए कोई गारंटी नहीं है कि वे पर्याप्त हैं। आपकी विधि (50 लेबल के सरणी के साथ आइपॉड स्पर्श पर परीक्षण) 0.0022 - 0.0029 सेकंड चलाता है, mit3z की विधि चलती है: 0.0015-0.002s तो थोड़ा तेज़ – Vladimir

+0

@Vladimir क्या आप कहेंगे कि ब्लॉक आमतौर पर विधियों से तेज़ होते हैं ..? क्या यह क्यों हो रहा है? –

2

बस संग्रह करके बताना और सामग्री के साथ आप जो कुछ भी चाहते हैं:

[allLabels enumerateIndexesUsingBlock:^(UILabel *label, NSUInteger idx, BOOL *stop) { 
    label.hidden = YES; 
}]; 
0

स्विफ्ट संस्करण सरणी प्रकार के लिए:

(allLabels as NSArray).setValue(NSNumber(bool: true), forKey: "hidden") 
+2

'allLabels.forEach {$ 0.hidden = true} 'अधिक तेज़ होगा – EmilioPelaez

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