2017-06-29 13 views
0

私のコントローラのviewDidLayoutSubviews部分にscrollToItemAtIndexPathを使用して、ユーザーを特定のセルにスクロールさせることができます。彼らはcellForItemAtIndexPathCollectionview Cell DelegateメソッドがscrollToItemAtIndexPathで呼び出されていませんか?

の一部としてロードされたときに

私の細胞が自分のparamsのためのネットワーク呼び出しを行うことになっている問題がcellForItemAtIndexPathにprint文を置くことは、呼び出されないです表示されていることでしょうか?ここでの紛争の原因とその解決策は何ですか?コードは次のようになります。

- (void)viewDidLayoutSubviews { 
    CDCChannelCollectionView *scrollView; 

    if (self.view == [self mixMonitorView]) { 
     scrollView = [[self mixMonitorView] scrollView]; 
     NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection: self.selectedChanIndex]; 
     [scrollView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES]; 
    } 
} 

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    CDCChannelStrip *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; 

    if (self.view == self.mixMonitorView) { 
     NSInteger chanInt = indexPath.section; 
     NSNumber *chanNum = [NSNumber numberWithInteger:chanInt]; 
     NSNumber *chanNameNumber = [NSNumber numberWithInteger:chanInt + 1]; 
     NSString *chanName = [NSString stringWithFormat:@"CH %@", chanNameNumber]; 
     cell.channelNumber = chanInt; 
     cell.channelName.text = chanName; 
     [self getParameters:(chanNum)]; 
     [self.mixMonitorView setChannelsStripToType:(cell)]; 
     cell.clipsToBounds = YES; 
     return cell; 
    } 
} 
+0

選択したインデックスにスクロールする必要がありますか? – CodeChanger

+0

はいスクロールが問題ではなく、正常に動作します。 – jcad

+0

はいbcusは間違った呼び出しをしています。このようにすると 'NSIndexPath * indexPath = [NSIndexPath indexPathForItem:self.selectedChanIndex inSection:0 ]; ' – CodeChanger

答えて

0

データソースメソッドは、コレクションビューの再読み込みを呼び出します。それは、スクロール前に表示されていないcollectionViewCellにスクロールされていない限り、

[yourCollectionViewName reloadData]; 
+0

再利用可能なセルが作成されるたびに、デリゲートメソッドが呼び出される必要があります。 – jcad

+0

特定のインデックスにスクロールした後、コールデータソースメソッドが必要です。これを試してみましたか? –

+0

いいえ、手動でスクロールするときと同じように、再利用可能なセルを作成するときにメソッドを呼び出す必要があります。 – jcad

0

scrollToItemAtIndexPath以下

てみデータソースのメソッドを呼び出すことはありません。既に表示されているセルにスクロールする場合はreloadDataに電話する必要があります

+0

水平でないセルへのスクロール – jcad

関連する問題