单元格内的视图框架在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:
使用此动画块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); }]; } }
我不确定它是否适合您,但我只在此方法中添加了单元格动画。
希望这对你也有帮助。