Согласно документации Apple для UIControlState: выбрано состояние элемента управления. Для многих элементов управления это состояние не влияет на поведение или внешний вид.Но другие подклассы (например, класс UISegmentedControl) могут иметь различный внешний вид в зависимости от их выбранного состояния.Вы можете получить и установить это значение через свойство selected .
И когда вы проверяете свойство selected , упоминается похожая вещь.Следовательно, для UIButton это свойство должно быть установлено явно в кнопке «Действие» кнопки.
Что касается кнопки, необходимо выполнить следующее:
[button setBackgroundImage:highlightImage forState:(UIControlStateHighlighted|UIControlStateSelected)];
[button setBackgroundImage:highlightImage forState:UIControlStateSelected];
И в методе действия этой кнопки введите следующий код:
buttonState = !buttonState;
[(UIButton *)sender setSelected:buttonState];
Где buttonStateдолжен быть BOOL iVar в соответствующем классе.В этом случае состояние кнопки переключает выбранное состояние.Следовательно, изображение для выбранного состояния устанавливается по желанию.
Также обратите внимание, что мы получаем выделенное изображение для (UIControlStateHighlighted | UIControlStateSelected), потому что при выборе кнопки это промежуточное состояние.