1

Items というオブジェクトの配列を表示する UIcollectionview があります。アプリのライフサイクルのある時点で、コレクションビューを移動 (またはスクロール) して、NSnotification 経由で受け取る特定のアイテムに移動する必要があります。そのアイテムの NSIndexPath はわかりませんが、コレクションビューで確実に利用できます。私は試した

  NSIndexPath *myIndexPath = [NSIndexPath indexPathForItem:myItem inSection:1];
  [self.collectionView scrollToItemAtIndexPath:myIndexPath  
   atScrollPosition:UICollectionViewScrollPositionCenteredVertically
                                   animated:NO];

しかし、これは任意の数値を返し、関係ありません。

どうやってやるの?

4

1 に答える 1

1

コードの詳細がわからないので、答えを一般化しています。

ID と言う myItem の一意のプロパティを持つことができます。

myItemArray などの項目の配列を維持し、コレクション ビューを同じ順序で設定する場合は、次のように動作します。

NSArray* myItemArray; //array used to populate collectionView
NSIndexPath *myIndexPath; //this is what we need to know
int index = 0;

//myItem is object of item type & notifiedItem is notified item
for (Item* myItem in myItemArray) {
    if (myItem.ID == notifiedItem.ID) {
         myIndexPath = [NSIndexPath indexPathForItem:index inSection:1];//you got the index path right
        break;
    }
    index++;
}

//use the index path
于 2013-07-16T10:49:56.537 に答える