0

我有一个 UITableView 单元格,里面有一个自定义标签来处理可变高度。左右还有一个UIImage。

当表格切换到编辑模式时,我想通知和更改表格中的每个单元格,以正确格式化以便向右移动。而且,当用户按下小-时,我想进一步优化为删除按钮腾出空间。

寻找适用于上述情况的模式,假设单元格中有我可以控制的自定义内容。

提前致谢!

4

1 回答 1

1

通常,您需要做的就是正确设置弹簧和支柱,您的内容就会正确滑动。如果您在代码中创建子视图,那么您需要确保您调用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。

于 2013-06-02T03:49:16.333 回答