사용하여 animation이있는 tableViewCell에서 셀을 이동하는 방법 objective-C스 와이프 동작
행이있는 tableView가 있습니다. 나는 그 사용자가 조금씩 옆으로 움직일 수 있고 추가 행동이 그에게 보여 지길 바란다.
이 이루어졌다 무엇 : 는현재 XIB 파일의 XIB 파일 및 셀에 따로 테이블을 만듭니다. 세포가 매우 간단합니다
가고 싶습니다 viewWIthLabel
으로 이동하고 싶습니다.
- (IBAction)swipeLeft:(id)sender{
NSLog(@"swipeL");
[UIView animateWithDuration:0.5 animations:^{
self.viewWIthLabel.frame = CGRectMake(-100, 0, self.viewWIthLabel.frame.size.width, self.viewWIthLabel.frame.size.height);
} ];
}
- (IBAction)swipeRight:(id)sender{
NSLog(@"swipeR");
[UIView animateWithDuration:.5 animations:^{
self.viewWIthLabel.frame = CGRectMake(0, 0, self.viewWIthLabel.frame.size.width, self.viewWIthLabel.frame.size.height);
}];
}
그래서 아이디어는 셀을 슬쩍하고 숨겨진 버튼을 보여주기 위해 약간의 거리를 애니메이션으로 이동하기 : 애니메이션을 사용하기위한 세포 클래스 파일에서 나는 다음 코드를
- (void)awakeFromNib
{
UISwipeGestureRecognizer * leftGestrudeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
leftGestrudeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
UISwipeGestureRecognizer * rightGestrudeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
rightGestrudeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self addGestureRecognizer:rightGestrudeRecognizer];
[self addGestureRecognizer:leftGestrudeRecognizer];
}
과 행동을 사용합니다. 이 코드의
결과 - 내가 원하는 almoust 같은 :
하지만 당신은있는 tableView 당신이 (스크롤 속도에 따라) 임의의 "슬쩍 세포"의 중복을 얻을 수있는 위치를 이동하기 시작하면 :
이 일어난 이유는 어떤 생각?
뒤쪽보다 - 다시 문지르지 않으면 안됩니다. 현재 스왑 된 셀을 저장할 수 있습니까? – gbk
'tableview' 데이터를 구성하는 배열에있는 데이터 요소의 속성에 상태 (BOOL로 스 와이프 메뉴가 표시되는지 여부를 나타냄)를 설정함으로써 코드를 작성해야합니다. –
예, 적어도 재사용 된 셀을 "정상"위치로 복원 한 다음 해당 행에 대한 BOOL과 같은 상태 변수를 기반으로 프레임을 다시 이동할 수 있습니다. – auspicious99