UITableViewCell с потерей анимации UIImageView (ошибка iOS 5?) - PullRequest
1 голос
/ 17 октября 2011

До сих пор это работало нормально, но в iOS 5, когда у меня есть imageView на обычном UITableViewCell для сгруппированного табличного представления, и я переключаю таблицу с редактирования на НЕ редактирование, анимация теряется, а текст и изображениевид просто защелкнулся на место вместо скольжения.Я ничего не перезагружаю - я сократил свой код почти до нуля, чтобы решить эту проблему, прежде чем я просто закомментировал строку, где я говорю: «1001 *

cell.imageView.image = [UIImage imageNamed:@"image.png"];

», а затем все работало нормально.Это ошибка в iOS 5?

РЕДАКТИРОВАТЬ: До сих пор я думаю, что это проблема с UIImageView для доставленных ячеек таблицы.Похоже, что анимация с набором без редактирования для пользовательских ячеек и UITableViewCell БЕЗ imageView в порядке.Я хотел бы найти способ обойти это, это заставляет вещи выглядеть непрофессионально.

Ниже приведен мой код для части сгруппированного табличного представления, о котором я говорю, это часть cellforrowatindexPath:

static NSString *CellIdentifier = @"ItemDetailDefaultCell";
            UITableViewCell *cell = (UITableViewCell *)[tableView1 dequeueReusableCellWithIdentifier:CellIdentifier];
            if (cell == nil) {
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
                cell.backgroundColor = [[UIApplication sharedDelegate] defaultCellBackgroundColor];

                cell.textLabel.backgroundColor = [UIColor clearColor];
                cell.textLabel.shadowOffset = CGSizeMake(0.0, 1.0);

                cell.detailTextLabel.backgroundColor = [UIColor clearColor];

                cell.detailTextLabel.font = detailTextLabelFont;
                cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
                cell.detailTextLabel.minimumFontSize = DETAIL_TEXT_LABEL_MINIMUM_FONT_SIZE;

                cell.detailTextLabel.textColor = [[UIApplication sharedDelegate] defaultDetailTextColor];
                cell.detailTextLabel.shadowColor = [[UIApplication sharedDelegate] defaultDetailShadowColor];
                cell.detailTextLabel.shadowOffset = CGSizeMake(0.0, 1.0);
            }
            else {
                UIView* subview;
                while ((subview = [[[cell contentView] subviews] lastObject]) != nil)
                    [subview removeFromSuperview];
                cell.textLabel.text = nil;
                cell.detailTextLabel.text = nil;
            }
            cell.selectionStyle = [[UIApplication sharedDelegate] defaultCellSelectionStyle];
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
            cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;
            cell.accessoryView = nil;
            cell.editingAccessoryView = nil;

            cell.autoresizingMask = UIViewAutoresizingFlexibleWidth;
            cell.contentMode = UIViewContentModeLeft;

            cell.textLabel.textColor = [[UIApplication sharedDelegate] defaultMainTextColor];
            cell.textLabel.shadowColor = [[UIApplication sharedDelegate] defaultMainShadowColor];
            cell.textLabel.font = textLabelFont;
            cell.textLabel.adjustsFontSizeToFitWidth = YES;
            cell.textLabel.minimumFontSize = TEXT_LABEL_MINIMUM_FONT_SIZE;

            [(UACellBackgroundView *)cell.backgroundView setHeader:NO];
            if (row < itemsCount) {
                [(UACellBackgroundView *)cell.backgroundView setPosition:UACellBackgroundViewPositionMiddle];
            }
            else {//row == items.count
                if (self.editing) {
                    [(UACellBackgroundView *)cell.backgroundView setPosition:UACellBackgroundViewPositionMiddle];
                }
                else {
                    [(UACellBackgroundView *)cell.backgroundView setPosition:UACellBackgroundViewPositionBottom];
                }
            }
            cell.textLabel.text = item.name;
            cell.imageView.image = [UIImage imageNamed:@"status1.png"];
return cell;

1 Ответ

0 голосов
/ 28 октября 2011

Вы входите в режим редактирования, используя этот метод

[myTable setEditing:NO animated:YES];

Кроме того, если вы перезагружаете данные, это также отменяет анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...