2016-05-22 3 views
0

У меня есть пользовательская ячейка UITableView как xib.Правильный способ установки делегата ScrollView в UITableViewCell

Взял прокрутку внутри.

Я знаю, как установить делегата, но у меня есть путаница. Их два делают это.

Я не знаю, что лучше, и как решить, каким образом мне нужно выбирать.

1 Путь: Для того, чтобы установить делегата Для файлов Владелец

enter image description here

2 Путь: настройка Делегат UITableViewCell

enter image description here

+0

вид прокрутки является супер class table view.Table view - это подкласс класса Scroll View, поэтому вам не нужно добавлять прокрутку внутри tableviee. – user3182143

+0

Я должен показать галерею изображений в Mulitple UItable view cells – Dalvik

ответ

0

В Tableview ячейки делегат scrollview всегда будет установлен на UITableViewCell

Это означает, что ваш второй шаг будет работать. Сообщите мне, если вы найдете какие-либо трудности.

0

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

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

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    // if the table view's delegate points here (likely), then to distinguish... 
    if (scrollView != self.tableView) { 
     // one of the scroll views in the table, but which one? 
     NSIndexPath = [self indexPathContainingView:scrollView]; 
     // here we know that horizontal scrolling happened on indexPath.row 
    } 
} 

// return the indexPath of the tableView cell containing a view 
- (NSIndexPath *)indexPathContainingView:(UIView *)view { 
    while(view && ![view isKindOfClass:[UITableViewCell self]]) 
     view = view.superview; 
    return [self.tableView indexPathForCell:(UITableViewCell *)view]; 
} 
Смежные вопросы