Самый простой способ - создать копии значков, которые вы используете, и подкрасить / изменить их в своем любимом графическом редакторе.Назовите различные изображения примерно так:
icon.png
icon-disabled.png
Затем вы можете установить одно изображение для каждого состояния кнопки.В Интерфейсном Разработчике просто нажмите кнопку, и в окне Инспектора вы увидите всплывающее меню с надписью «Конфигурация состояния по умолчанию».Изображения, которые вы здесь указываете, будут использоваться для всех состояний кнопок по умолчанию.В поле «Фон» введите icon.png.Затем выберите «Конфигурация отключенного состояния» из меню и введите icon-disabled.png в качестве фонового изображения.Обязательно верните меню в состояние конфигурации по умолчанию, чтобы не запутаться в будущих изменениях.
Если вы хотите установить то же самое программно, просто используйте что-то вроде:
[myButton setBackgroundImage:[UIImage imageNamed:@"icon.png" forState:UIControlStateNormal];
[myButton setBackgroundImage:[UIImage imageNamed:@"icon-disabled.png" forState:UIControlStateDisabled];
Это возможновзять изображение и программно изменить его с помощью градиента, но если вы не делаете это все время и не изменяете градиент на основе пользовательского ввода или чего-то еще, вы сэкономите много головной боли и времени, просто делая это таким образом.