Вы должны использовать простой UIButton.
Вы можете установить разные тексты/изображения в зависимости от статуса кнопки, например Предлагается Devanshi. Однако подход if/else - это плохая идея, потому что какао уже предоставляет эти и гораздо более простые и малые.
Есть два способа: либо storyboard
(если вы используете его), либо programatically
, где бы вы ни создали свою кнопку (скорее всего, viewDidLoad
).
Если вы используете раскадровки
раскадровке довольно просто, выберите кнопку, и под «государством» вы можете выбрать различные настройки. Каждый параметр будет загружать различные параметры для следующих параметров. Как, например, название и изображение.
- Просто перейдите в состояние «по умолчанию» и установите необработанную рамку в качестве изображения.
- (Вы можете) перейти в состояние «Выделено» и установить временное выделенное поле в качестве изображения; это не обязательно.
- Затем перейдите в состояние «Выбрано» и установите флажок в качестве изображения.
И вы сделали.
Если вы используете только код
programatic способ сделать это довольно просто.
Я предполагаю, что у нас есть кнопка под названием btSend
,
UIControlStateNormal
, UIControlStateSelected
, UIControlStateDisabled
, UIControlStateHighligted
, являются состояния, которые можно использовать. Я использовал отключенный и нормальный (включен) здесь.
[self.btSend setImage:[UIImage imageNamed:@"SendIcon.png"] forState:UIControlStateNormal];
[self.btSend setImage:[UIImage imageNamed:@"SendIconGrayed.png"] forState:UIControlStateDisabled];
С этим вы тоже будете работать.
После установки, что до Теперь, когда ваши кнопки знают, что показать в зависимости от их состояния, вам нужно добавить метод выбора для действия (IBAction
), в которой вам нужно будет инвертировать состояние вашего текущая кнопка. Возможно, у вас уже есть это, просто добавьте логическое значение.
checkBoxSelected - это логическое значение, которое я создал как переменную экземпляра (поверх файла .m). Вы можете установить его в «NO» в viewDidLoad, если ваше радио не выбрано по умолчанию и YES, если оно выбрано по умолчанию.
@implementation TermViewController{
BOOL checkBoxSelected;
}
здесь является метод, который вызывается при нажатии на кнопку
- (IBAction)tapRadioButton:(id)sender {
checkBoxSelected = !checkBoxSelected;
[_btCheckbox setSelected:checkBoxSelected];
}
Вы, наверное, есть «нечто», которое проверяет, если будет выбран флажок, чтобы знать, что вы можете получить состояние вашей кнопки, используя self.yourButton.state
. Это вернет UIControlState
, просто проверьте, есть ли это Normal
или Selected
или Disabled
или HIghlighted
.
Или вы можете проверить логическое значение «checkboxselected», если это ДА или НЕТ :)
Если у вас есть много кнопок радио, вы можете сохранить все эти логические значения в словаре. Например, ключ будет вашим номером вашей кнопки, и объект будет YES или NO. если вы нажмете кнопку (как показано выше), измените состояние кнопки, а также измените ее в словаре. В конце у вас есть все ваши состояния в словаре.
Я не объяснял все это в своем первом письме, потому что это не было частью вашего вопроса :) Я надеюсь, что это поможет.
Откуда у вас этот снимок экрана? Я имею в виду, какой объект вы редактируете? –
его объект NSMatrix (Radio Group) – Retro
Иисус, почему я никогда не слышал об этом в течение года iOS. –