기본적으로 팬 제스처를 사용하여 셀을 스 와이프 할 때 나타나는 사용자 정의 삭제 버튼이있는 UITableViewCell 클래스가 있습니다.사용자 정의 삭제 버튼을 클릭하면 UITableViewCell이 삭제됩니다.
이와 비슷한 것. _delBtn이 내 삭제 버튼입니다. 클릭하면 TableCell이 삭제됩니다. 나를 당신의 deleteClicked
방법이
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:_baseView];
if (recognizer.state == UIGestureRecognizerStateEnded)
{
translation.y = 0;
CGPoint velocity = [recognizer velocityInView:_baseView];
CGFloat magnitude = sqrtf((velocity.x * velocity.x));
CGFloat slideMult = magnitude/1000;
NSLog(@"magnitude: %f, slideMult: %f", magnitude, slideMult);
float slideFactor = 0.1 * slideMult;
velocity.x = velocity.x + 1000;
velocity.y = 0;
CGPoint finalPoint = CGPointMake(recognizer.view.center.x + (velocity.x * slideFactor),
recognizer.view.center.y + (velocity.y * slideFactor));
finalPoint.x = MIN(MAX(finalPoint.x, 0), _baseView.bounds.size.width);
finalPoint.y = MIN(MAX(finalPoint.y, 0), _baseView.frame.size.height);
[UIView animateWithDuration:slideFactor*2 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
recognizer.view.center = finalPoint;
} completion:nil];
if (finalPoint.x >= 195)
{
_delBtn = [[UIButton alloc] initWithFrame:CGRectMake(5, 10, 60, 60)];
[_delBtn setImage:[UIImage imageNamed:@"delBtn3.jpg"] forState:UIControlStateNormal];
[_delBtn addTarget:self action:@selector(deleteClicked) forControlEvents:UIControlEventTouchUpInside];
_delBtn.hidden = NO;
[_baseView insertSubview:_delBtn atIndex:0];
_delBtn.alpha = 0;
[UIView animateWithDuration:slideFactor delay:0.4 options:UIViewAnimationOptionCurveLinear animations:^{
recognizer.view.center = finalPoint;
} completion:nil];
지정된 셀의 데이터 소스를 제거하고 [tableview deleteRowsAtIndexPaths : ....]를 호출하십시오. – doge