2014-02-22 3 views
0

특히 테이블 뷰 편집, 삭제를 구현했지만 UITableViewCell 하위 클래스가 편집 모드로 들어가면 셀 내용을 '이동'하지 않습니다.편집 모드로 전환 할 때 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

일부 코드를 원하는대로

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

Eveything이 작동/스크린 샷은 좋은 것입니다. 그리고 사기꾼의 경우, autolayout 제약 조건/자동 크기 조정 마스크를 추가 했습니까? – Can

+0

@Can Autolayout 제약 조건도 콘텐츠 뷰에 ​​대해 적용되어야하므로 이론적으로는 안된다. 즉, 문제. –

+0

Sean, 편집을 입력하고, 버그를 재현하고, 일시 중지하고, po [[UIApplication sharedApplication] .keyWindow recursiveDescription]'의 디버그 출력을 게시 할 수 있습니까? 감사 –

답변

0

가, 대답은 올바르게 자동 레이아웃을 사용하고 있는지 확인하는 것입니다 : 여기

는 관련 재귀 설명입니다. 제한 조건을 추가하는 경우 :

관련 문제