2012-02-22 3 views
9

Есть ли флажок в библиотеке объектов для приложений iOS? Самое близкое, что я вижу, это управление переключателем, которое может принимать логическое значение.Элемент управления флажком для приложения iOS

+0

UISegmentedControl может помочь вам – 0xDE4E15B

+1

Использование UIButton состояния для проверки/снимите флажок знаков. Поставьте снимок (нормальное состояние) и проверьте (выбранное состояние). – Hirak

+0

Нет никакого элемента управления UI по умолчанию для флажка или переключателя, здесь вам нужно использовать 2 разных изображения для проверки и снятия флажка и логически их контролировать. – kulss

ответ

36

Вы можете использовать выбранное состояние UIButton, установить различные изображения (или также тексты) для дифферента (с помощью кода или интерфейса Builder):

[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, чтобы вызвать метод checkBoxTapped.Этот метод говорит с моим основным контроллером представления, где я решаю, был ли ответ верным или неправильным. контроллер вызывает назад эту точку зрения и говорит ему, чтобы изменить пустое текстовое поле либо проверки:

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

// определить свойства кнопки

Объявить Unchecked Image

- (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; 
    } 
} 
Смежные вопросы