我有一个带有多个自定义单元格的UITableView。一个特殊的可重用单元有一个名为" bargraphImageView"的UIImageView插座。 @property (weak, nonatomic) IBOutlet UIImageView *barGraphImageView;
当用户点击其中一个单元格时,我们会计算一些数据并通过设置bargraphImageView.image来显示图形
[cell.barGraphImageView setFrame:CGRectMake(18, 0.5f, 0, height)];
[cell.barGraphImageView setImage:[stretchableImage stretchableImageWithLeftCapWidth:40 topCapHeight:0]];
[UIView animateWithDuration:1.0f delay:0.0f usingSpringWithDamping:dmp initialSpringVelocity:vel options:opt animations:^{
[cell.barGraphImageView setFrame:CGRectMake(18, 0.5f, (296 * percent), height)];
} completion:nil];
效果很好,并且显示正确。但是,当我模态segue到另一个viewController [self performSegueWithIdentifier:@"NewQuestionSegue" sender:self];
,然后关闭viewController [self dismissViewControllerAnimated:YES completion:nil];
时,所有单元格上的barGraphImageViews都已清除。
我在同一个单元格(包括UIImageViews)上还有其他几个不清楚的插座,这就是为什么这对我来说太令人困惑了。我在离开细胞时打电话给cell.barGraphImageView.image = nil
,但细胞不会在这里出列。
有关为何/如何发生的任何想法?
编辑: 我甚至尝试在viewDidAppear方法中调用tableView上的reloadData。如果已经显示了tableView:cellForRowAtIndexPath,我会自动显示图形(没有动画)。
这个DID不起作用:(barGraphImageView仍然被清除)
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView reloadData];
}
这个DID工作:(一旦tableViewController完全可见,barGraphImageViews显示正确:
- (void)viewDidAppear:(BOOL)animated
{
[self.tableView reloadData];
}
为什么?
编辑#2:编辑#2: 由于似乎没有人知道答案,有没有人知道如何调试这个?