我有一个UITableView单元格内部具有自定义标签来处理变量高度。在左侧和右侧还有一个UIImage。在删除期间UITableView更改
当表格切换到编辑模式时,我想通知并更改表格中的每个单元格,以正确地格式化以便向右移动。而且,当用户按下小键盘时,我想进一步优化为删除按钮留出空间。
寻找一种适用于上述情况的模式,假设在我控制的单元中存在自定义内容。
在此先感谢!
我有一个UITableView单元格内部具有自定义标签来处理变量高度。在左侧和右侧还有一个UIImage。在删除期间UITableView更改
当表格切换到编辑模式时,我想通知并更改表格中的每个单元格,以正确地格式化以便向右移动。而且,当用户按下小键盘时,我想进一步优化为删除按钮留出空间。
寻找一种适用于上述情况的模式,假设在我控制的单元中存在自定义内容。
在此先感谢!
通常您需要做的就是正确设置弹簧和支柱,并且您的内容将正确滑动。如果您在代码中创建子视图,那么您需要确保您拨打cell.contentView
而不是cell
拨打addSubview
。
隐藏和/或调整你需要重写willTransitionToState:
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
UIView *imageView = self.rightImageView;
UIView *labelView = self.centerTextLabel;
CGRect labelFrame = labelView.frame;
if (state & UITableViewCellStateShowingDeleteConfirmationMask) {
labelFrame.size.width += 52;
// Animating the fade while the image is sliding to the left
// is more jarring then just making it go away immediately
imageView.alpha = 0.0;
[UIView animateWithDuration:0.3 animations:^{
labelView.frame = labelFrame;
}];
} else if (!self.rightImageView.alpha) {
labelFrame.size.width -= 52;
[UIView animateWithDuration:0.3 animations:^{
imageView.alpha = 1.0;
labelView.frame = labelFrame;
}];
}
[super willTransitionToState:state];
}
我创建了一个快速示例应用程序了GitHub上,使用笔尖或代码只是取消注释//#define USE_NIB_TABLEVIEWCELL
到演示的是iOS 4.3应用程序的子视图用笔尖
https://github.com/GayleDDS/TestTableCell.git
我个人我倾向于在一个nib文件中创建表格视图单元格,并且只在分析该应用程序之后,用代码替换该nib。
你在故事板或约束中使用弹簧和支柱吗? – GayleDDS
弹簧和支柱,我们必须支持4.3。 –