У меня есть пользовательский UITableViewCell. У меня есть UIImageView
поверх UIButton
. Теперь, когда я нажимаю UIButton
, я могу переключить изображение UIImageView
что-то похожее на переключатель.UIImageView в пользовательском UIITableViewCell не переключается при перезагрузке
Проблема заключается в том, что когда я переключаю его в состояние «ДА», на сервере происходит вызов, который вносит необходимые изменения. Теперь, когда я перезаряжаю таблицу, UIImageView
не переходит в состояние «ДА». Я установил состояние UIButton
в «Selected», и это работает нормально. Но UIImageView
не меняется на новое изображение.
На обновление я получаю это:
Когда я на самом деле хочу это:
состояние по умолчанию это:
Обновленное состояние и состояние по умолчанию UIImageView
является одна и та же.
Здесь круглый значок является UIImageView
, а остальное является UIButton
Это то, что я пытаюсь сделать:
В обычае UITableViewCell
:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
self.karmaLogo = [[UIImageView alloc] initWithFrame:CGRectMake(self.karmaButton.frame.size.width - 40, 8, 30, 30)];
[self.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
self.karmaLogo.userInteractionEnabled = NO;
[self.karmaButton addSubview:self.karmaLogo];
}
И в делегат UITableView
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Creates the required custom cell
if (karmaCheck == 1) // Received from the server
{
cell.karmaButton.highlighted = YES;
cell.karmaButton.selected = YES;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-black"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
else
{
cell.karmaButton.highlighted = NO;
cell.karmaButton.selected = NO;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
Выполнение вводит оба блока if и else как и когда требуется, но не меняет изображение. Но подсветка и выбор karmaButton (UIButton
) отлично работают.
попытайтесь установить изображение в ничего, затем установив изображение на черный – heinst
Does not cell.karmaLogo.image = nil; имеют такой же эффект? – Anil
В теории да, но попробуйте '[cell.karmaLogo setImage: nil]]; вместо этого посмотрим, что получится – heinst