2014-11-25 2 views
2

UIImageView, UILabel, UIButton이 있습니다. 편집 모드를 YES로 설정하면 전체 셀 프레임이 오른쪽으로 너무 많이 이동합니다.UITableViewCell content 편집 모드에서 프레임보기가 오른쪽으로 너무 많이 이동합니다.

테이블을 위아래로 스크롤하면 문제가 해결 된 것 같습니다.

하지만 왜 그런 일이 일어나고 어떻게 해결할 수 있습니까?

+0

"너무 많은"무엇에 비해 문제가 해결됩니다 사용하는 사용자 정의 셀 전화를 설정하기되지 않는 이유는 무엇입니까? 아무것도, 또는 당신이 예상했던 들여 쓰기에 비해? 후자의 경우 왜 정확한 거리를 예상 했습니까? 이 값을 어딘가에 조정 했습니까? – Andreas

+0

정상적인 프레임 동작과 비교해 볼 때 너무 많습니다. 이 값을 어떻게 조절할 수 있을지조차 모르겠다. –

답변

2

사용자 정의 UITableViewCell에서 layoutSubviews 및 willTransitionToState를 사용하십시오. .h 파일에 int 상태를 추가하십시오. 당신의하는 .m 세포에서 는

- (void)willTransitionToState:(UITableViewCellStateMask)aState 
    { 
     [super willTransitionToState:aState]; 
     state = aState; 
    } 

은 또한이 추가 추가

- (void)layoutSubviews 
    { 
    [super layoutSubviews]; 
    self.contentView.frame = CGRectMake(0, 
            self.contentView.frame.origin.y, 
            self.contentView.frame.size.width, 
            self.contentView.frame.size.height); 
      if (self.editing) 
      { 
      switch (state) { 
      case 2: 
      // swipe action -> here you play with how much your content will move 
      self.contentView.frame = CGRectMake(90, 
                self.contentView.frame.origin.y, 
                self.contentView.frame.size.width-90, 
                self.contentView.frame.size.height); 
      break; 
       } 
      } else { 
      NSLog(@"subview not in edit %i",state); 
      self.contentView.frame = CGRectMake(0, 
             self.contentView.frame.origin.y, 
             self.contentView.frame.size.width, 
             self.contentView.frame.size.height); 
      [self setNeedsDisplay]; 
    } 
} 

이것은 들여 쓰기를 정의하기에 충분합니다.

1

이 보통 일 때문에 셀의 레이아웃은 layoutSubviews의 프레임이

관련 문제