进入编辑模式时,UITableViewCell不滚动内容

时间:2014-02-22 02:57:24

标签: ios uitableview

我已经实现了一些tableview编辑,特别是删除,但是当UITableViewCell子类进入编辑模式时,它不会“移动”单元格的内容。

过去,当子视图被添加到单元格本身而不是contentView时,我已经体验过这一点,但在这种情况下,所有子视图确实都在单元格的contentView上。

对于它的价值,这是在界面构建器中创建的单元格。

任何人都知道对此的修复?

谢谢!

以下是相关的递归描述:

   |    |    |    |    |    |    |    |    | <DDPaymentCardCell: 0x125e6c690; baseClass = UITableViewCell; frame = (0 35; 320 44); autoresize = W; gestureRecognizers = <NSArray: 0x17805b660>; layer = <CALayer: 0x1782240e0>>
   |    |    |    |    |    |    |    |    |    | <UITableViewCellScrollView: 0x125e6c990; frame = (0 0; 320 44); autoresize = W+H; gestureRecognizers = <NSArray: 0x178241920>; layer = <CALayer: 0x17822a4c0>; contentOffset: {82, 0}>
   |    |    |    |    |    |    |    |    |    |    | <UITableViewCellDeleteConfirmationView: 0x1781ac400; frame = (320 0; 82 44); layer = <CALayer: 0x17803dd40>>
   |    |    |    |    |    |    |    |    |    |    |    | <UITableViewCellDeleteConfirmationButton: 0x125e50f30; frame = (0 0; 82 43.5); opaque = NO; autoresize = LM; layer = <CALayer: 0x17803dec0>>
   |    |    |    |    |    |    |    |    |    |    |    |    | <UILabel: 0x125e32880; frame = (15 11; 52 22); text = 'Delete'; userInteractionEnabled = NO; layer = <CALayer: 0x17822ce20>>
   |    |    |    |    |    |    |    |    |    |    | <UITableViewCellContentView: 0x178174c40; frame = (38 0; 282 43.5); opaque = NO; gestureRecognizers = <NSArray: 0x178240180>; layer = <CALayer: 0x17822c840>>
   |    |    |    |    |    |    |    |    |    |    |    | <UILabel: 0x125e3cb40; frame = (100 11; 227 21); text = 'Ending in 4242'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x17803fe00>>
   |    |    |    |    |    |    |    |    |    |    |    | <UIImageView: 0x125e19620; frame = (61 12; 32 20); opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x1782256a0>>
   |    |    |    |    |    |    |    |    |    |    |    | <UILabel: 0x125e55e90; frame = (248 11; 86 21); text = 'Exp 4/2024'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x178229740>>
   |    |    |    |    |    |    |    |    |    |    | <_UITableViewCellSeparatorView: 0x178191100; frame = (82 43.5; 320 0.5); layer = <CALayer: 0x17822bd20>>
   |    |    |    |    |    |    |    |    |    |    | <_UITableViewCellSeparatorView: 0x170190b50; frame = (82 0; 320 0.5); layer = <CALayer: 0x170236e00>>
   |    |    |    |    |    |    |    |    |    |    | <UITableViewCellEditControl: 0x125d2f370; frame = (0 0; 47 44); opaque = NO; layer = <CALayer: 0x17023d360>>
   |    |    |    |    |    |    |    |    |    |    |    | <UIImageView: 0x125d31640; frame = (12 14; 22 22); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x170232300>>
   |    |    |    |    |    |    |    |    |    |    |    | <UIImageView: 0x125d20c20; frame = (12 12; 22 22); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x17023acc0>>

1 个答案:

答案 0 :(得分:0)

对于它的价值,答案是确保您正确使用AutoLayout。如果添加约束:

    [self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.priceLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual
                                                         toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-kCellRightMargin]];

Eveything将按照需要运作