Изображение UIImageView не изменяется по коду

Я знаю, что моя проблема глупая, но я не могу ее исправить и не нашел ответа. У меня есть IBoutlet UIImageView в пользовательском UITableViewCell. Я установил его UIImage в IB и хочу изменить его с помощью кода, когда пользовательская ячейка записана на пленку. Мой код следующий. Но как-то имидж не меняется. Это метод из моего пользовательского UItableViewCell.

-(void)setExpanded:(BOOL)expand
{
    if(expand)
    {
        [self.expandedImageView setImage:[UIImage imageNamed:@"bt_up.png"]];
        expanded = YES;
        //self.infoLabel.hidden = NO;
        //[self setNeedsDisplay];
    }
    else
    {
        [self.expandedImageView setImage:[UIImage imageNamed:@"bt_down.png"]];
        expanded = NO;
        //self.infoLabel.hidden = YES;
        //[self setNeedsDisplay];
    }

}

Пробовал поиграть с "SetNeedDisplay". Я также пытался изменить UIimage вне CustomCell, но не работает.

Любая помощь будет очень признательна, потому что я нахожусь на ней так много времени;)

С уважением,


person Amnysia    schedule 02.02.2011    source источник
comment
Можете ли вы проверить, возвращает ли сообщение imageNamed: нулевой указатель?   -  person James Bedford    schedule 03.02.2011
comment
кто я? РасширенныйImageView сохраняется и отображается в себе?   -  person meronix    schedule 03.02.2011
comment
Я проверил нулевой указатель, но imagedNamed вернул действительный указатель. self - это настраиваемый UITableViewCell, а extendedImage полностью отображается в self. ExpandImage - это IBOutlet UIImageView.   -  person Amnysia    schedule 03.02.2011


Ответы (3)


Возможны 2 причины:

  1. Ваш self.expandedImageView равен нулю
  2. У вас нет изображений с именами bt_up.png, bt_down.png
person Max    schedule 03.02.2011
comment
self.expandedImageView - действительный указатель, и у меня есть это изображение. Это очень странно. Но спасибо всем за вашу помощь. - person Amnysia; 03.02.2011

Если ваше изображение и свойства действительно действительны, я бы посоветовал проверить, какой поток вызывает setExpanded:. Какао заявляет, что объекты пользовательского интерфейса должны изменяться только потоком пользовательского интерфейса, поэтому, если вы вызываете его из некоторого таймера или потока BG, возможно, это проблема.

person Echelon    schedule 03.02.2011
comment
У меня нет второго потока или таймера, которые вызывают setExpanded. Это очень странно. Я правда не знаю, где может быть ошибка. - person Amnysia; 03.02.2011

Попробуйте распечатать его (настраиваемые UITableViewCell) подвиды и проверьте, существует ли экземпляр изображения или нет в списке, если существует, попробуйте изменить изображение для этого экземпляра.

person Gina    schedule 03.02.2011