아래 코드 에서처럼 UITableViewCell contentView를 패닝합니다. 나는 이동되고있는 UITableViewCell contentView 뒤에 존재하는 뷰가 무엇인지 알고 싶습니다.UITableViewCell을 패닝 할 때 어떤보기가 나타 납니까?
나는이 "드러낸 전망"의 색깔을 바꾸고 싶기 때문에 나가 질문하는 이유이다. 셀을 스 와이프 할 때 각 tableViewCell 아래의 색을 사용자 지정하고 싶습니다. 예를 들어, 세 번째 행을 스 와이프하면 셀 뒤쪽에 파란색이 보입니다. 네 번째 행을 스 와이프하면 셀 뒤에 녹색이 보입니다.
- (void)panGestureRecognizer:(UIPanGestureRecognizer *)recognizer {
//...
if ((recognizer.state == UIGestureRecognizerStateBegan
|| recognizer.state == UIGestureRecognizerStateChanged)
&& [recognizer numberOfTouches] > 0) {
CGPoint location1 = [recognizer locationOfTouch:0 inView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location1];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
CGPoint translation = [recognizer translationInView:self.tableView];
cell.contentView.frame = CGRectOffset(cell.contentView.bounds, translation.x, 0);
}
//...
}
내가 시도한 한 가지는 UIView를 만들고 contentView 뒤에 셀에 추가하는 것이 었습니다. 이것은 효과가 있지만 만족하지는 않습니다. UITableViewRowAnimationLeft를 사용하여 셀 삭제를 애니메이션화하는 코드를 삽입하면 백그라운드의 색상이 셀과 함께 왼쪽으로 이동합니다. 이는 애니메이션이 셀을 삭제하여 셀을 삭제할 때 내가 만든 배경 뷰가 전체 셀과 함께 이동하기 때문에 의미가 있습니다. 내가 원하는 동작은 배경색이 실제로 셀 뒤에 있기 때문에 삭제 애니메이션에서 셀을 이동할 때 움직이지 않습니다.
다음 코드는 배경 뷰를 셀에 추가하여 contentView 아래에 배치하는 방법입니다.
[cell.contentView setBackgroundColor:[UIColor whiteColor]];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, self.tableView.rowHeight)];
view.backgroundColor = [UIColor redColor];
[cell addSubview:view];
[cell bringSubviewToFront:cell.contentView];