编辑模式后UITableViewCell刷新问题

时间:2011-10-07 20:23:48

标签: iphone ios uitableview

我已经实现了一个名为UITableViewCell的{​​{1}}子类。当进入编辑模式或当我滑动单元格以显示删除按钮时,我想隐藏我单元格中的标签并在退出编辑模式时显示它。

我在UITableViewCellCustom

中实现了以下代码
UITableViewCellCustom

我有两个问题。

  1. 例如,如果我的tableview中有23行。当我显示前5行时,我进入编辑模式。我的rankLabel被隐藏了,然后我滚动到我的桌子底部(到第23行)并且我退出了编辑模式。 rankLabel再次显示但不是所有单元格,我的单元格6/12和18未正确刷新。有什么想法吗?

  2. 在方法- (void)willTransitionToState:(UITableViewCellStateMask)state { [super willTransitionToState:state]; if ((state == UITableViewCellStateShowingDeleteConfirmationMask) || (state == UITableViewCellStateShowingEditControlMask)) { [UIView animateWithDuration:0.5 animations:^{rankLabel.alpha = 0.0;}]; } } - (void)didTransitionToState:(UITableViewCellStateMask)state { [super didTransitionToState:state]; if (state == UITableViewCellStateDefaultMask) { [UIView animateWithDuration:0.5 animations:^{rankLabel.alpha = 1.0;}]; } } 中,我使用willTransitionToState轻柔地隐藏了我的rankLabel但它不起作用,rankLabel被隐藏但没有过渡。当我想再次显示标签时,同样的方法在animateWithDuration中非常有效。有什么想法吗?

  3. 感谢您的支持。

1 个答案:

答案 0 :(得分:5)

对于#2:

- (void)willTransitionToState:(UITableViewCellStateMask)state {
[super willTransitionToState:state];

if ((state == UITableViewCellStateShowingDeleteConfirmationMask) || (state == UITableViewCellStateShowingEditControlMask)) {

    [UIView setAnimationsEnabled:TRUE];

    [UIView animateWithDuration:0.5
                     animations:^{rankLabel.alpha = 0.0;}];

}