iPhone Uibutton с функциональностью UISWITCH
Вопрос
Есть ли способ реализовать UISWITCH с пользовательской графикой для государств Switch? Или в качестве альтернативы наоборот, Uibutton с функциональностью UISWITCH?
Решение
UIButton
Уже поддерживает функциональность «переключения».
Просто установите другое изображение в интерфейс -строитель для «выбранной конфигурации состояния» и используйте 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];
}