2016-05-22 11 views
0

私はxibとしてカスタムUITableViewセルを持っています。正しい方法UITableViewCellでScrollViewの代理人を設定する

私はその中でスクロール表示をしました。

私はデリゲートを設定する方法を知っていますが、私は混乱しています。これらは2つのことです。

私は最良であると私は選択しなければならない方法を決定する方法を知っていません。

1ウェイ:ファイルの所有者に

enter image description here

2ウェイの委任を設定するには、次の設定委任をUITableViewCellの

enter image description here

+0

スクロールビューはスーパーですテーブルビューのクラス。テーブルビューはスクロールビューのサブクラスであるため、テーブルビービー内にスクロールを追加する必要はありません。 – user3182143

+0

私はMulitple UItableビューのセルで画像ギャラリーを表示する必要があります – Dalvik

答えて

0

にテーブルビューでスクロールビューの代理人は常にUITableViewCellに設定されます

これは、2番目の手順が機能することを意味します。 問題が見つかった場合は教えてください。

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]; 
} 
関連する問題