iOS: кнопка backgroundImage не меняется в представлении аннотации

У меня есть MKMapView с рядом аннотаций, представляющих магазины. Когда пользователь нажимает на аннотацию, я представляю пользовательский вид аннотации. Это представление содержит кнопку избранного, которая добавляет магазин в избранное пользователя.

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

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

Эта проблема возникает только на устройстве iOS7, но будет отлично работать на симуляторе iOS7 и симуляторе / устройстве iOS8.

Любая помощь будет отличной, спасибо.

2 ответа

Решение

Сначала установите 2 разных изображения для двух состояний кнопки.

[btn setBackgroundImage:img1 forState:UIControlStateNormal];
[btn setBackgroundImage:img2 forState:UIControlStateSelected];

затем на событие buttonPress

задавать

button.selected = !button.selected

Вы используете такой код для изменения изображения?

     [btn setBackgroundImage:img1 forState:UIControlStateNormal];
    [btn setBackgroundImage:img1 forState:UIControlStateSelected];
    [btn setBackgroundImage:img1 forState:UIControlStateHighlighted];

и попробуйте эту строку, когда btnpressed

[btn setNeedsDisplay];

Другие вопросы по тегам