Я думаю, что вы находитесь в режиме перебора :). Попробуйте установить button.png для UIControlStateNormal и buttonActive.png для UIControlStateHighlighted. Не нужно отдыхать. Посмотрите, работает ли это.
EDIT:
Также помните: Имена файлов изображений чувствительны к регистру
Тестируете ли вы на устройстве? Имена изображений чувствительны к регистру при сборке устройства, но не для симулятора. Например, если ваш фактический файл изображения называется buttonactive.png, но вы называете его как buttonActive.png из своего кода, он будет отображаться на симуляторе, но не на устройстве.
Пожалуйста, убедитесь, что регистр для обоих имен изображений соответствует имени фактического файла.
РЕДАКТИРОВАТЬ # 2:
Попробуйте этот код
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setSelected:YES];
button.frame = CGRectMake(x, y, width, height);
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
[button setTitle:@"Button Title" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"buttonActive.png"] forState:UIControlStateHighlighted];