я отображение списка элементов в tableview.i необходимо выбрать и удалить несколько строк из таблицы, в то время, любые ресурсы, о том, как это сделатьвыбрать несколько строк из UITableView и удалить
ответ
Я если ваша таблица имеет только один раздел. Вы можете легко распространить это решение на несколько разделов.
- Добавить член NSMutableSet "selectedRows" на свой UIViewController подкласс, который управляет ваш TableView
- в
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
тумблер членства indexPath.row в "selectedRows", как это:
NSNumber *rowNsNum = [NSNumber numberWithUnsignedInt:indexPath.row];
if ([self.selectedRows containsObject:rowNsNum])
[self.selectedRows removeObject:rowNsNum];
else
[self.selectedRows addObject:rowNsNum];
- указывает визуально, что выбран ряд (например, установите принадлежность ячейки ype в UITableViewCellAccessoryCheckmark) или изменить визуальную визуализацию вашей камеры каким-либо другим способом, чтобы указать, что это выбранная строка.
- добавьте кнопку «удалить» в свой пользовательский интерфейс, либо в виде заголовка/нижнего колонтитула таблицы, , подключился к селектору, называемому «deleteRows»
- в вашем методе deleteRows, выполните итерацию по выбранному набору Rows, создав массив indexPaths, удалив эти строки из вашей модели данных, а затем позвоните (с вашим предпочтительным типом анимации):
[self.myTableView deleteRowsAtIndexPaths:arrayOfIndexPathsToDelete withRowAnimation:UITableViewRowAnimationTop];
EDIT: Вот мой полный метод didSelectRowAtIndexPath. Для правильной работы может потребоваться deselectRowAtIndexPath.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.editing)
return;
[self.myTableView deselectRowAtIndexPath:indexPath animated:YES];
NSNumber *rowNsNum = [NSNumber numberWithUnsignedInt:indexPath.row];
if ([self.selectedRows containsObject:rowNsNum])
[self.selectedRows removeObject:rowNsNum];
else
[self.selectedRows addObject:rowNsNum];
[self.myTableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.2];
}
#import "ViewController.h"
#import "TableViewCell.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UITableView *tblView;
@property (strong,nonatomic)NSMutableArray *arryData1,*arryData2;
@property (strong,nonatomic)UIBarButtonItem *edit,*delete;
@end
@implementation ViewController
{
BOOL Selected;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.arryData1 = [[NSMutableArray alloc] initWithObjects:@"MCA",@"MBA",@"BTech",@"MTech",nil];
self.arryData2 = [[NSMutableArray alloc] initWithObjects:@"Objective C",@"C++",@"C#",@".net",nil];
self.edit=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(edit:)];
self.navigationItem.leftBarButtonItem=self.edit;
self.delete=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(delete:)];
self.navigationItem.rightBarButtonItem=self.delete;
self.tblView.allowsMultipleSelection=YES;
}
-(void)edit:(id)sender
{
Selected=YES;
[self.tblView reloadData];
}
-(void)delete:(id)sender
{
NSArray *selectedCells = [self.tblView indexPathsForSelectedRows];
NSMutableIndexSet *indicesToDelete = [[NSMutableIndexSet alloc] init];
for (NSIndexPath *indexPath in selectedCells) {
[indicesToDelete addIndex:indexPath.row];
}
//arrayFromPlist is NSMutableArray
[self.arryData1 removeObjectsAtIndexes:indicesToDelete];
[self.tblView beginUpdates];
[self.tblView deleteRowsAtIndexPaths:selectedCells withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tblView endUpdates];
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
// Remove the row from data model
[self.arryData1 removeObjectAtIndex:indexPath.row];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.arryData1 count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier= @"Cell";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}
if (Selected==YES) {
cell.imageView.image=[UIImage imageNamed:@"trash.png"];
}
else
{
cell.imageView.image=nil;
}
cell.textLabel.text = [self.arryData1 objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [self.arryData2 objectAtIndex:indexPath.row];
return cell;
}
@end
на кнопке «щелчок» на кнопке «Редактировать» - это изменение и просто выберите несколько строк, затем нажмите кнопку «Удалить», и вы увидите, что все выделенные строки ячеек удалены. –
код удаления нескольких строк. –
Добавить объяснение, как это решить проблему в вашем ответе – NSNoob
- 1. Как выбрать несколько строк в UITableview
- 2. Как выбрать несколько строк в UITableView
- 3. UITableView: могу ли я удалить несколько строк?
- 4. Как выбрать и сохранить несколько значений из таблиц строк
- 5. Несколько пользовательских строк UITableView?
- 6. angularjs - Как выбрать и удалить несколько строк sqlite
- 7. Удалить разделы без строк из UITableView
- 8. Удалить несколько строк из Nattable
- 9. Codeigniter выбрать несколько строк?
- 10. Удалить Несколько строк из datagridview
- 11. Как выбрать несколько строк в UITableView в режиме редактирования?
- 12. Как удалить несколько выделенных строк из сетки
- 13. Несколько строк и столбцов в UITableview
- 14. MySQL выбрать первые 5 строк (несколько строк)
- 15. Удалить из UITableView и UINavigationBar
- 16. SQL - Как выбрать несколько строк
- 17. PHP - выбрать несколько строк из MySQL
- 18. Как выбрать несколько строк из таблицы mysql?
- 19. Выберите несколько строк в UITableView
- 20. Как выбрать несколько строк из подзапроса
- 21. выбрать несколько строк из таблицы MySQL буксировки
- 22. удаление строк и разделов из UITableView swift
- 23. Как выбрать несколько строк и каскадировать их?
- 24. HBase- Удалить несколько строк
- 25. iOS - Удаление строк из UITableView
- 26. Как получить несколько выбранных значений строк из uitableview и сохранить несколько выбранных значений в массиве?
- 27. Выбрать несколько checkbox и удалить позицию
- 28. Handsontable удалить несколько строк
- 29. jqGrid удалить несколько строк
- 30. Удалить строку из UITableview
У меня есть проблема, делая это, я установил сотовое изображение для отображения в то время как я выбрал клетку, чтобы удалить, но эта точка зрения обновляется только после того, как я прокручивать ячейку из поля зрения, а затем сделать он возвращается, как я могу обновить cellimage в свое время? – sujith1406
Вы можете принудительно перезагрузить представление таблицы с помощью [tableView reloadData] ;. У меня возникли проблемы с обновлением отдельных ячеек в didSelectRowAtIndexPath (визуальные глюки), снова решена только путем вызова reloadData. И иногда, трюк, который я использую, заключается в том, чтобы сделать задержку вызова reloadData с помощью функции performSelector: withObject: afterDelay, иногда это единственный способ снова получить таблицу «здравомыслящий». – Bogatyr
thankyou, еще одна проблема, с которой я столкнулся, заключается в том, что в вышеприведенном случае, если условие else только часть else работает все время, помощь pls, i nslogged и проверены, есть значения в наборе, но первое условие не работает – sujith1406