Внутри каждого UITableViewCell
моего UITableView
у меня есть UIScrollView
. Вид прокрутки настроен так, что, когда пользователь переместится вправо, появится меню. Это похоже на поведение ячеек в приложении iPhone Twitter. Когда пользователь перебирает другую ячейку, я перебираю все видимые ячейки, чтобы сообщить UIScrollView
прокрутить назад содержимое ячейки (т. Е. Ее начальную позицию). Итерация выполняется в методе scrollViewWillBeginDragging
со следующим кодом:Стоимость итерации по ячейкам в UITableView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
if([scrollView tag] == 90) {
NSLog(@"Dragging a scroll view inside a cell!");
for (UITableViewCell *cell in self.tableView.visibleCells) {
[(UICellContentScrollView *)[cell viewWithTag:90] scrollRectToVisible:CGRectMake(0.0f, 0.0f, 320.0f, [cell frame].size.height) animated:YES];
}
}
}
В методе viewDidDisappear
я снова перебирать все клетки, чтобы сбросить различные вещи, например, так:
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
for(NSUInteger section = 0; section < [[self tableView] numberOfSections]; section++) {
for(NSUInteger row = 0; row < [[self tableView] numberOfRowsInSection:section]; row++) {
UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section]];
// resetting cell here
}
}
}
Мой вопрос, если я (а) идя по этому правильному пути и (б) есть ли у кого-нибудь рекомендации по лучшему решению, учитывая, что табличный вид может содержать 50 (не более 100) элементов.