我有一个 UITableView 单元格,里面有一个自定义标签来处理可变高度。左右还有一个UIImage。
当表格切换到编辑模式时,我想通知和更改表格中的每个单元格,以正确格式化以便向右移动。而且,当用户按下小-时,我想进一步优化为删除按钮腾出空间。
寻找适用于上述情况的模式,假设单元格中有我可以控制的自定义内容。
提前致谢!
我有一个 UITableView 单元格,里面有一个自定义标签来处理可变高度。左右还有一个UIImage。
当表格切换到编辑模式时,我想通知和更改表格中的每个单元格,以正确格式化以便向右移动。而且,当用户按下小-时,我想进一步优化为删除按钮腾出空间。
寻找适用于上述情况的模式,假设单元格中有我可以控制的自定义内容。
提前致谢!
通常,您需要做的就是正确设置弹簧和支柱,您的内容就会正确滑动。如果您在代码中创建子视图,那么您需要确保您调用addSubview
的是 .cell.contentView
而不是cell
.
要隐藏和/或调整您需要覆盖的子视图的大小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 上创建了一个快速示例应用程序,它演示了一个使用 nib 的 iOS 4.3 应用程序,或者取消注释//#define USE_NIB_TABLEVIEWCELL
以使用 nib 的代码
https://github.com/GayleDDS/TestTableCell.git
我个人更喜欢在 nib 文件中创建表格视图单元格,并且只有在分析应用程序之后,才用代码替换 nib。