Что не так с моим способом изменения фонового изображения UIBUtton?

Посмотрим на эту картинку:

введите описание изображения здесь

Левая стрелка показывает, что фон кнопки изменился в Интерфейсном Разработчике, но все еще остается белым на симуляторе (и iPhone).

Стрелка вправо показывает, что я изменил фоновое изображение.

Так почему же фоновое изображение не меняется?

И каков вообще параметр фона в этом построителе интерфейса? Причина, по которой я спрашиваю, - это когда вы программно устанавливаете фоновое изображение, необходимое для указания состояния.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

Подсказка: изображение слишком велико, но вы можете использовать ctrl + в firefox для увеличения: D

Примечание: я добавил:

  UIImage * imgFilterBar = [UIImage imageNamed:@"filter-bar.png"];
    [self.ChangeFilter setBackgroundImage:imgFilterBar forState:UIControlStateNormal|UIControlStateHighlighted];

в viewDidLoad

и это все еще не работает.

Я получил это предупреждение: 2012-10-10 18: 29: 59.929 BadgerNew [29833: c07] Не удалось загрузить изображение filter-bar.png, на которое ссылается наконечник в пакете с идентификатором.

Что это означает? Я делаю [UIImage imageNamed: @ "filter-bar.png"]; правильно? Файл находится в моем проекте.

введите описание изображения здесь


person user4951    schedule 10.10.2012    source источник
comment
вы проверяли, находится ли файл внутри пакета? BuildPhases- ›Копировать ресурсы пакета. проверьте, есть ли этот файл   -  person Aitul    schedule 10.10.2012


Ответы (4)


Если вы хотите, чтобы фоновое изображение было на кнопке, используйте параметр изображения над параметром фонового изображения.

person jkrishnavs    schedule 10.10.2012
comment
Я хочу, чтобы текст на кнопке оставался видимым. - person user4951; 10.10.2012

Вы пытались установить изображение UIButton вместо фонового изображения UIButton?

[self.ChangeFilter setImage:imgFilterBarforState:UIControlStateNormal|UIControlStateHighlighted];
person Aitul    schedule 10.10.2012

Вы можете добавить к кнопке подпись, чтобы увидеть имя. Проверьте другой цвет и размер титла, из-за этого, вероятно, вы не можете его увидеть. Если это невозможно, добавьте uilabel в кнопку

person Aitul    schedule 10.10.2012

Ответ Кендалла в Не удалось загрузить изображение, на которое ссылается перо в пакете, работающем на устройстве, принесло мне облегчение.

Проблема в том, что я использую справочную папку (синяя папка). Если я это сделаю, мне нужно будет указать имя папки, а это беспорядок.

Поэтому я просто копирую все это в ресурсы. Проблема решена.

person user4951    schedule 10.10.2012