iPhone UIButton с функцией UISwitch
есть ли способ реализовать UISwitch с пользовательской графикой для состояний коммутатора? Или в качестве альтернативы наоборот, UIButton с функциональностью UISwitch?
4 ответа:
UIButton
уже поддерживает функцию" переключатель".просто установите другое изображение в Interface Builder для "выбранной конфигурации состояния" и используйте
selected
собственностьUIButton
для переключения его состояния.
установите изображение для отображения в выбранном состоянии:
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
, а затем на ощупь внутри селектора, установил:
button.selected = YES;
Если вы хотите отменить выбор другой кнопки, установите:
otherButton.selected = NO;
чтобы построить на том, что PGB и nurne сказали выше, после того, как вы установите свои состояния и прикрепите селектор (метод события), вы хотите поместить этот код в этот селектор.
- (IBAction)cost:(id)sender { //Toggle current state and save self.buttonTest.selected = !self.buttonTest.selected; /** The rest of your method goes here. */ }
для программно склоняюсь:
-(void) addToggleButton { CGRect aframe = CGRectMake(0,0,100,100); UIImage *selectedImage = [UIImage imageNamed:@"selected"]; UIImage *unselectedImage = [UIImage imageNamed:@"unselected"]; self.toggleUIButton = [[UIButton alloc] initWithFrame:aframe]; [self.toggleUIButton setImage:unselectedImage forState:UIControlStateNormal]; [self.toggleUIButton setImage:selectedImage forState:UIControlStateSelected]; [self.toggleUIButton addTarget:self action:@selector(clickToggle:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:self.toggleUIButton]; } -(void) clickToggle:(id) sender { BOOL isSelected = [(UIButton *)sender isSelected]; [(UIButton *) sender setSelected:!isSelected]; }