2012-07-10 63 views
1

我试图显示和隐藏子视图时,UITableview处于编辑模式而它显示删除按钮(整个编辑和删除过程,而不仅仅是编辑),然后当它回到正常模式时使其消失。willTransitionToState没有被调用(UITableview)

我真的很接近我想要的方式,但每次单击单元格中的“删除”按钮时,它都会使我的视图消失,当我不希望它消失到用户完全退出编辑模式。

我试图使用委托方法- (void)willTransitionToState:(UITableViewCellStateMask)state但我发现了一个错误,当我打电话super

- (void)willTransitionToState:(UITableViewCellStateMask)state { 

    [super willTransitionToState:state]; 

    if ((state & UITableViewCellStateShowingEditControlMask)) { 
     clear.alpha = 1.0; 
    } 
} 

的错误是常见的一种,但我似乎无法找到一个解决方案:

为 '的UITableViewController' 不可见@interface声明 选择 'willTransitionToState:'

如果我不叫超级,我不会得到这个错误,但是这个方法也不会被调用。

我也尝试使用setEditing,但是当删除按钮被点击,删除单元格,但仍处于编辑模式,我想在整个编辑过程中保持可见查看/删除程序消失

+0

我在'numberOfRowsInSection中设置了我的视图的alpha属性,导致了消失问题,但我仍然不知道为什么willTransitionToState没有被调用。 – jhilgert00 2012-07-10 16:19:36

回答

1

您需要在自定义表格视图单元格中调用该方法(willTransitionToState :)。它不是在UITableViewController类中识别的方法。如果您在.m文件中调用willTransitionToState:如果您的自定义tableview单元类,它应该工作。只要确保单元类具有“明确”定义的IVAR(根据您提供的代码,您似乎拥有这个IVAR)。如果您想要执行某些操作,例如防止单元格在编辑时缩进内容,请查看layoutSubviews方法。

1

willTransitionToStateUITableViewCell上的方法,不在UITableViewController上。