我已经实现了一些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>>
答案 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将按照需要运作