我有一个自定义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'将被称为对称,但事实并非如此.
似乎showingDeleteConfirmationUITableViewCell 的' '属性总是给出正确的结果.因此理论上我可以遍历调用' showingDeleteConfirmation'的每个单元格并相应地启用或禁用每个文本字段.这是低效率和kludgy.我正在考虑提交' willTransitionToState' 的错误报告,但我需要更多的数据点.还有其他人遇到过这个问题吗?
Apple确认这是一个错误.截至今天,错误报告仍然是开放的.