2013-08-27 3 views
0

У меня есть требование, когда мне нужно показать ползунок в ячейке UITableview. Это, в основном, представление таблицы загрузки, в котором загружаются аудиофайлы, отслеживается ход загрузки и отображается в ячейке tableview. Каждый раз, когда происходит загрузка элемента, я получаю метод делегата, и я вызываю таблицу reload для обновления представления таблицы. Это приводит к проблеме прокрутки, где таблица не прокручивается сглаженно, поскольку она перезагружает ячейку для загрузки элемента. Как я могу решить эту проблему?UiSlider следует обновлять внутри UITableviewCell каждую секунду

Благодаря

ответ

0

Может

// indexPaths array contains NSIndexPath of you cell with UISlider. 
NSArray * indexPaths = @[[NSIndexPath indexPathForRow:1 inSection:0]]; 
[self.tableView reloadRowsAtIndexPath:indexPaths withRowAnimation:UITableViewRowAnimationNone]; 

может помочь вам. Это позволяет обновлять только некоторые строки, а не всю таблицу.

Даже если это не решит проблему, лучше обновить только одну строку, которую вам нужно, а затем каждую секунду перезагружать все данные в таблицу.

1

Accid Bright определенно на правильном пути с этим и, вероятно, может быть более приемлемым решением. Однако, если вы все еще видите проблемы с производительностью, может случиться так, что ячейки все еще выполняют слишком много работы, когда их перезагружают. То, что я хотел бы посмотреть на делать это обновление только значение UISlider:

NSIndexPath *indexPath = /* index path to the current row to be updated */ 
MyCustomCell *cell = (id)[self.tableView cellForRowAtIndexPath:indexPath]; 
[cell.slider setValue:DOWNLOAD_PROGRESS animated:NO]; 

На несвязанной ноте я предлагаю вам взглянуть на использование UIProgressView вместо UISlider, как это больше подходит для отображения прогресса.

Смежные вопросы