在cellForRowAtIndexPath

在cellForRowAtIndexPath

我在tableViewCell内部有一个View。在某些情况下,我想将视图移至某个原点x,但以下代码在cellForRowAtIndexPath中不起作用。如果我在cellForRowAtIndexPath完成后使用代码,则可以正常工作。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UINib *nib = [UINib nibWithNibName:@"GoalDetailsCustomCardCell" bundle:nil];

[goalDetailsTableView registerNib:nib forCellReuseIdentifier:@"CardCell"];
GoalDetailsTableViewCell *cell = [goalDetailsTableView dequeueReusableCellWithIdentifier:@"CardCell"];

if(cell == nil)
{
    cell = [goalDetailsTableView dequeueReusableCellWithIdentifier:@"CardCell"];
}
if([self.swipedRowArray containsObject:indexPath])
        {
            [UIView animateWithDuration: 0.5 animations:^{
                cell.cardDetails.frame = CGRectOffset(cell.cardDetails.frame, -322.0, 0.0);
                //        CGRectOffset(cell.cardView.frame, -320.0, 0.0);
                cell.actionCardReminder.frame = CGRectOffset(cell.actionCardReminder.frame, -322.0, 0.0);
            }];
}
}


任何人都可以帮助我..在此先感谢。

最佳答案

tableView:willDisplayCell:forRowAtIndexPath:方法中使用此动画块:

-(void)tableView:(UITableView *)tableView willDisplayCell:(GoalDetailsTableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

if([self.swipedRowArray containsObject:indexPath])
        {
            [UIView animateWithDuration: 0.5 animations:^{
                cell.cardDetails.frame = CGRectOffset(cell.cardDetails.frame, -322.0, 0.0);
                //        CGRectOffset(cell.cardView.frame, -320.0, 0.0);
                cell.actionCardReminder.frame = CGRectOffset(cell.actionCardReminder.frame, -322.0, 0.0);
            }];
  }
}


我不确定它是否对您有用,但是我仅以这种方法添加了单元动画。

希望这对您也有帮助。

关于ios - 单元格内的 View 框架在cellForRowAtIndexPath中不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27636660/

10-10 20:42