2015-07-23 3 views
1

У меня есть пользовательский UITableviewCell, который содержит несколько UILabels на них. Данные получены из веб-служб, и я хотел бы отсортировать их на основе одного из UILabels. Полученные данные сохраняются в массиве. Как я могу их отсортировать?Сортировка многих меток в таблицеView

Спасибо! :) Код, написанный для добавления данных в ячейках с BO:

cells.head.text = [[self.messageStore objectAtIndex:indexPath.section] subject]; 
      cells.subhead.text = [[self.messageStore objectAtIndex:indexPath.section] messageli]; 
      cells.signature.text=[AppConstants getUsername]; 
      cells.viewCount.text = [NSString stringWithFormat:@"%@ Views",[[self.messageStore objectAtIndex:indexPath.section] viewsCount]]; 
      cells.interested.text= [[self.messageStore objectAtIndex:indexPath.section] interestedCount]; 
      cells.date.text = [[self.messageStore objectAtIndex:indexPath.section] creationDate]; 
      [cells.image1 sd_setImageWithURL:[NSURL URLWithString:[[self.messageStore objectAtIndex:indexPath.section] imageURL]] placeholderImage:[UIImage imageNamed:@"no_photo.png"]]; 
       cells.editZButton.hidden = NO; 
      cells.editZButton.tintColor = [UIColor whiteColor]; 
      cells.deleteZButton.hidden = NO; 
      cells.amount.text = [NSString stringWithFormat:@"$ %@",[[self.messageStore objectAtIndex:indexPath.section] priceAmount]];   cells.editZButton.tag = indexPath.section; 
      cells.deleteZButton.tag = indexPath.section; 
      [cells.editZButton addTarget:self action:@selector(editButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
      [cells.deleteZButton addTarget:self action:@selector(deleteButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
+0

Вы хотите отсортировать отсортированную метку или отсортировать массив? Сначала сортируйте массив, а затем перезагрузите таблицу, если содержимое массива находится на ярлыке. –

+0

этикетка текст. как это сделать? – sam24

+0

У вас есть множество словарей? –

ответ

1

Вы можете сортировать данные, используя предикат

NSPredicate *predicate=[NSPredicate predicateWithFormat:@"Your_Key ==%@",Your_Value_For_Key]; 
NSArray *array=[Your_Array_Of_Data filteredArrayUsingPredicate:predicate]; 
1

Поскольку вы не дали нам точный массив для сортировки , Я предполагаю, что это просто простой NSArray строк.

Вы можете использовать NSSortDescriptor сортировать NSArray ниже

NSArray *arr = [[NSArray alloc] initWithObjects:@"Sam", @"John", @"Andrew", nil]; 
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:NO]; 
NSArray *sortedArray = [arr sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

Затем перезагрузите TableView с "sortedArray".

+0

self.messageStore, содержащий MessageBO с переменной NSString для createDate, должен быть отсортирован. И показано из недавно опубликованного в более раннем формате – sam24

+0

, укажите пример массива, который вы используете – Matt

+0

, данные получены из webservices. массив messageStore содержит объекты BO, и я буду получать доступ к его свойствам из массива – sam24

0

Ниже приведен общий метод, вы можете попробовать.

- (NSMutableArray*)sortArray:(NSMutableArray*)dataArray filterKeyName:(NSString*)KeyName ascending:(BOOL)isAscending{ 

     NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:KeyName ascending:isAscending]; 
     [dataArray sortUsingDescriptors:[NSArray arrayWithObject:sorter]]; 

     return dataArray; // Sorted data array.. 
    } 
Смежные вопросы