2016-11-08 2 views
0

У меня есть UITableView на моей ViewController Это n количества секций, где моя первая секция всегда отображает мой хотелку продукции (только на основе шоу сравнения опции включены в SettingsController) Каждый раз, когда я добавить товар в моем Лист пожеланий на моем DetailViewController Я запускаю NSNotificatiion моим ViewController, где он будет получать Список желаний записей.Как обновить конкретный раздел?

Мои numberOfRowsInSection: всегда возвращает 1 потому, что это UITableView + UICollectionView комбинация для получения Горизонтальные + Vertial прокруткой.

Итак, я перегрузочный мой раздел, как показано ниже образом,

if (isWishListSectionReloadRequires) { 
    NSArray *deleteIndexPaths = [NSArray arrayWithObjects: 
           [NSIndexPath indexPathForRow:0 inSection:0], 
           nil]; 
    NSArray *insertIndexPaths = [NSArray arrayWithObjects: 
           [NSIndexPath indexPathForRow:0 inSection:0], 
           nil]; 
    [tableView beginUpdates]; 
    [tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
    [tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
    [tableView endUpdates]; 
} else { 
    [tableView reloadData]; 
} 

Но я столкнулся ниже аварии,

провала утверждения - [UITableView _endCellAnimationsWithContext:]/SourceCache /UIKit_Sim/UIKit-2380.17/UITableView.m:1054 2016-11-04 04: 25: 15.921 оценка [9025: c07] *** Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Неверное обновление: неверное число разделы. Число разделов, содержащихся в представлении таблицы после обновления (10), должно быть равно количеству разделов, содержащихся в представлении таблицы до обновления (10), плюс или минус количество вставленных или удаленных разделов (1 вставлен, 1 удалены)

Может ли кто-нибудь сказать мне, что может быть причиной? Любая идея будет оценена!

+1

Вы обновили источник данных соответственно? Я имею в виду количество строк в разделе и т. Д.? – KrishnaCA

+0

@KrishnaChaitanyaAmjuri Как вручную обновлять источник данных? – Praveenkumar

+0

Попробуйте - (void) разделы reloadSections: (NSIndexSet *) с анимацией RowAnimation: (UITableViewRowAnimation) вместо удаления и вставки. – Sealos

ответ

1

Вместо этого вы можете использовать метод reloadSections UITableView.

Objective C

NSRange range = NSMakeRange(0, 1); 
NSIndexSet *section = [NSIndexSet indexSetWithIndexesInRange:range];          
[self.tableView reloadSections:section withRowAnimation:UITableViewRowAnimationNone]; 

Swift

tableView.reloadSections(NSIndexSet(index: 2), withRowAnimation: .None) 
0

Вы можете перезагружать Collection View, как вам нужно только обновить список пожеланий.

[collectionView reloadData]; 

Если вам нужна горизонтальная и вертикальная прокрутка есть много Lib третьей стороны только проверка RTTwoDimmensionalScroll

0

Reload используя нижеприведенного пути, не забудьте перезагрузить отдельные разделы внутри начать обновления и окончание обновление, так что верхние и нижние колонтитулы также обновляются.

[tableView beginUpdates]; 
NSIndexSet *section = [NSIndexSet indexSetWithIndex:0];          
[self.tableView reloadSections:section withRowAnimation:UITableViewRowAnimationAutomatic]; 
[tableView endUpdates]; 
Смежные вопросы