Ret*_*tro 7 uitableview ios ios7
Cell不允许删除它.滑动发生时,它会向后滑动,因此无法将其删除.控制台中的消息说:
attempting to set a swipe to delete cell when we already have one....
that doesn't seem good
Run Code Online (Sandbox Code Playgroud)
码:
#import "GroupDetailInfoViewController.h"
#import "YFJLeftSwipeDeleteTableView.h"
@interface GroupDetailInfoViewController ()
{
NSMutableArray * _dataArray;
UIButton * _deleteButton;
NSIndexPath * _editingIndexPath;
UISwipeGestureRecognizer * _leftGestureRecognizer;
UISwipeGestureRecognizer * _rightGestureRecognizer;
UITapGestureRecognizer * _tapGestureRecognizer;
}
@property (nonatomic, retain) YFJLeftSwipeDeleteTableView *tableView;
@end
@implementation GroupDetailInfoViewController
- (id)init
{
self = [super init];
if (self) {
// Custom initialization
_dataArray = [@[@(1), @(2), @(3), @(4), @(5), @(6), @(7), @(8), @(9), @(10)] mutableCopy];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
CGRect frame = self.view.bounds;
self.tableView = [[YFJLeftSwipeDeleteTableView alloc] initWithFrame:frame];
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
[self.view addSubview:self.tableView];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return _dataArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"Data at Row %@", _dataArray[indexPath.row]];
return cell;
}
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[_dataArray removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
- (void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"willBeginEditingRowAtIndexPath");
//[super setEditing:YES animated:YES];
[self.tableView setEditing:YES animated:YES];
//Self.editing handles the done / edit button
tableView.editing = YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCellEditingStyle editingStyle = UITableViewCellEditingStyleNone;
/*if (tableView.editing)*/ editingStyle = UITableViewCellEditingStyleDelete;
return editingStyle;
}
- (void)tableView:(UITableView*)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"didEndEditingRowAtIndexPath");
//[super setEditing:NO animated:YES];
[self.tableView setEditing:NO animated:YES];
//Self.editing handles the done / edit button
tableView.editing = NO;
}
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 44;
}
@end
Run Code Online (Sandbox Code Playgroud)
添加 SWTableViewCell 后我遇到了同样的问题。我在已经实现之后添加了 SWTableViewCell - (void)tableView:(UITableView )tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath*。
一旦我删除了这个方法,事情就按预期进行了。我猜想 SWTableViewCell 安装的视图与尝试基于此方法安装同类视图的系统发生冲突。
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |