UITableViewCell 与 UIImageView 丢失动画(iOS 5 bug?)
到目前为止,这对我来说效果很好 - 但在 iOS 5 中,当我在分组表格视图上的常规 UITableViewCell 上有一个 imageView ,并将表格从编辑设置为不编辑时,动画会丢失,文本和图像视图会对齐回到原位而不是滑动。我没有重新加载任何东西 - 在我想到简单地注释掉我所说的那一行之前,我将代码精简到几乎没有任何内容来解决这个问题
cell.imageView.image = [UIImage imageNamed:@"image.png"];
,然后一切正常。这是 iOS 5 中的一个错误吗?
编辑:到目前为止,我认为这是交付的 tableview 单元格的 UIImageView 的问题。对于自定义单元格和没有 imageView 的 UITableViewCell 来说,设置不编辑动画似乎是可以的。我很想找到一种方法来解决这个问题,这会让事情看起来不专业。
下面是我所说的分组表格视图部分的代码,这是 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;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否使用此方法进入编辑模式
[myTable setEditing:NOanimated:YES];
此外,如果您重新加载数据,这也会取消动画。
Are you entering edit mode using this method
[myTable setEditing:NO animated:YES];
Also, if you are reloading the data, that will cancel the animation as well.