2013-05-21 23 views
0

我有一个UITableView单元格内部具有自定义标签来处理变量高度。在左侧和右侧还有一个UIImage。在删除期间UITableView更改

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

寻找一种适用于上述情况的模式,假设在我控制的单元中存在自定义内容。

在此先感谢!

+0

你在故事板或约束中使用弹簧和支柱吗? – GayleDDS

+0

弹簧和支柱,我们必须支持4.3。 –

回答

1

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

enter image description here

我个人我倾向于在一个nib文件中创建表格视图单元格,并且只在分析该应用程序之后,用代码替换该nib。