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];