小编ske*_*tik的帖子

willTransitionToState(UITableViewCell)在某些情况下不会被调用

我想要实现的目标

我有一个自定义UITableViewCell设有UITextField就地编辑.一个cell's字段应该被启用,而UITableView在编辑模式下,但不是同时细胞的删除确认被显示.

我是如何实现它的

我已经子类化UITableViewCell并重写了它的willTransitionToState方法:

- (void)willTransitionToState:(UITableViewCellStateMask)state {
   [super willTransitionToState:state];
   self.nameField.enabled = !(state & UITableViewCellStateShowingDeleteConfirmationMask)
                            && (state & UITableViewCellStateEditingMask);
}
Run Code Online (Sandbox Code Playgroud)

问题

我90%的路在那里.

" willTransitionToState"按钮- "用户按下电池的之后被称为".显示删除确认,并根据需要禁用我的文本字段.但是,如果用户决定不删除单元格并通过向右滑动隐藏删除确认,该怎么办?在这种情况下,不会调用'willTransitionToState'.

因此,即使在隐藏删除确认时应启用,我的文本字段也会处于禁用状态.你会认为,鉴于' UITableViewCellStateShowingDeleteConfirmationMask'标志存在,' willTransitionToState'将被称​​为对称,但事实并非如此.

UPDATE

似乎showingDeleteConfirmationUITableViewCell 的' '属性总是给出正确的结果.因此理论上我可以遍历调用' showingDeleteConfirmation'的每个单元格并相应地启用或禁用每个文本字段.这是低效率和kludgy.我正在考虑提交' willTransitionToState' 的错误报告,但我需要更多的数据点.还有其他人遇到过这个问题吗?

2014年4月29日

Apple确认这是一个错误.截至今天,错误报告仍然是开放的.

cocoa-touch uitableview uitextfield ios

7
推荐指数
1
解决办法
1531
查看次数

标签 统计

cocoa-touch ×1

ios ×1

uitableview ×1

uitextfield ×1