2012-02-22 14 views
9

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

+0

UISegmentedControl चिह्नित/अचिह्नित के निशान के लिए आप मदद कर सकते हैं – 0xDE4E15B

+1

उपयोग UIButton राज्यों। अनचेक (सामान्य स्थिति) की छवियां रखें और जांचें (चयनित स्थिति)। – Hirak

+0

चेकबॉक्स या रेडियो बटन के लिए कोई डिफ़ॉल्ट UI नियंत्रण नहीं है, यहां आपको चेक और अनचेक के लिए 2 अलग-अलग छवियों का उपयोग करना होगा और उन्हें तार्किक रूप से नियंत्रित करना होगा – kulss

उत्तर

36

आप एक UIButton की चयनित राज्य, सेट विभिन्न के लिए विभिन्न छवियों (या भी ग्रंथों) (कोड के माध्यम से, या इंटरफ़ेस बिल्डर) का उपयोग कर सकते हैं:

:

[button setImage:[UIImage imageNamed:@"selected.png"] 
     forState:UIControlStateSelected]; 
[button setImage:[UIImage imageNamed:@"unselected.png"] 
     forState:UIControlStateNormal]; 

और स्पर्श के अंदर कार्रवाई में

- (IBAction)buttonTouched:(id)sender 
{ 
    button.selected = !button.selected; 
    // add other logic 
} 
+0

मेरे लिए बहुत उपयोगी है। धन्यवाद ..... – Vaquita

+0

यह एक ओपन सोर्स लाइब्रेरी है जो इसके लिए कार्यान्वयन प्रदान करता है। https://github.com/t4ku/RadioButtonWithUIKit –

+0

काम नहीं करता है। आपको UIImageView लेना होगा। –

1

यह वह कोड है जिसे मैं स्क्रीन पर दो चेकबॉक्स के लिए उपयोग करता हूं। (मैंने उन्हें स्क्रीन पर भी दो चित्रों के नीचे रखा है। मैं चेकबॉक्स बॉक्स विधि को कॉल करने के लिए UIControlEventTouchDown का उपयोग करता हूं। यह विधि मेरे मुख्य दृश्य नियंत्रक से बात करती है जहां मैं तय करता हूं कि उत्तर सही या गलत था। फिर मुख्य दृश्य नियंत्रक इस दृश्य वापस कॉल और यह बताता है कि या तो एक जांच करने के लिए खाली पाठ बॉक्स को बदलने के लिए:

enter image description here

या एक एक्स

enter image description here

// Put the Checkboxes on the screen 
UIImage *checkBox = [UIImage imageNamed:@"Checkbox"]; 

self.checkBoxLeft = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxLeft setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxLeft setFrame:checkBoxFrameLeft]; 
[self.checkBoxLeft addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxLeft setTitle:@"checkBoxLeft" forState:UIControlStateNormal]; 
self.checkBoxLeft.contentEdgeInsets = insets; 
self.checkBoxLeft.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

self.checkBoxRight = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxRight setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxRight setFrame:checkBoxFrameRight]; 
[self.checkBoxRight addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxRight setTitle:@"checkBoxRight" forState:UIControlStateNormal]; 
self.checkBoxRight.contentEdgeInsets = insets; 
self.checkBoxRight.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

- (void)checkBoxTapped:(UIButton *)buttonPressed { 
    [[self delegate] checkBoxTapped:buttonPressed.currentTitle]; 
} 

- (void)highlightCheckbox:(NSString *)checkboxToHighlight withHighlight:(NSString *)highlight { 

    if ([checkboxToHighlight isEqualToString:@"left"]){ 
     [self.checkBoxLeft setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } else { 
     [self.checkBoxRight setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } 
} 
0

// बटन

की संपत्ति को परिभाषित अनियंत्रित छवि

- (void)viewDidLoad 
{ 
    [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal]; 
} 

की जाँच की छवि घोषित।

- (IBAction)buttonTapped:(id)sender 
{ 
    if (_checkboxButton.selected == YES) 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateSelected]; 
     _checkboxButton.selected = NO; 
    } 
    else 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal]; 
     _checkboxButton.selected = YES; 
    } 
} 
संबंधित मुद्दे