Sto utilizzando un UICollectionView
per visualizzare un menu e gli elementi vengono selezionati in un modo MOLTO strano.Strange UICollectionComposizio selezione selezione
Ecco il mio dati statici che li popola:
self.menuItems = @[@{@"text" : @"First", @"image" : @"180-stickynote.png"},
@{@"text" : @"Second", @"image" : @"180-stickynote.png"},
@{@"text" : @"Third", @"image" : @"180-stickynote.png"},
@{@"text" : @"Fourth", @"image" : @"180-stickynote.png"},
@{@"text" : @"Fifth", @"image" : @"180-stickynote.png"},
@{@"text" : @"Sixth", @"image" : @"180-stickynote.png"}];
E il gestore di telefonia mobile, in cui la sottoclasse personalizzata è solo attaccato al prototipo di cella e ha un UILabel
e un UIImageView
:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CUMenuCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MenuCell" forIndexPath:indexPath];
NSDictionary *cellInfo = [self.menuItems objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageNamed:[cellInfo valueForKey:@"image"]];
cell.label.text = [cellInfo valueForKey:@"text"];
return cell;
}
Ecco il metodo selezionato per selezionare la riga, registrare il titolo e la riga dell'articolo (sono tutti nella sezione 0):
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%@: %d", [[self.menuItems objectAtIndex:indexPath.row] valueForKey:@"text"], indexPath.row);
}
Infine, lo screenshot del mio menù:
Ecco il registro quando seleziono le voci dal primo al sesto, poi di nuovo dal sesto al primo (primo, secondo, terzo, quarto, quinto, sesto, sesto, quinto, quarto, terzo, secondo, primo) (12 rubinetti totali, si noti che il primo rubinetto non ha nemmeno registrati, né alla seconda battuta Sesto):
------------------------------------- FIRST TAP ON FIRST HERE
2013-02-13 19:38:37.343 App[1383:c07] First: 0 // second tap, on Second
2013-02-13 19:38:38.095 App[1383:c07] Second: 1 // third tap, on Third
2013-02-13 19:38:38.678 App[1383:c07] Third: 2 // fourth tap, on Fourth
2013-02-13 19:38:39.375 App[1383:c07] Fourth: 3 // fifth tap, on Fifth
2013-02-13 19:38:40.167 App[1383:c07] Fifth: 4 // so on
2013-02-13 19:38:41.751 App[1383:c07] Sixth: 5
------------------------------------- SECOND TAP ON SIXTH HERE
2013-02-13 19:38:42.654 App[1383:c07] Fifth: 4
2013-02-13 19:38:43.318 App[1383:c07] Fourth: 3
2013-02-13 19:38:44.495 App[1383:c07] Third: 2
2013-02-13 19:38:45.071 App[1383:c07] Second: 1
Wow. Potrei urlare un po ', troppo tardi adesso. Grazie mille, sinceramente! – Josh
@Josh, nessun problema, è un errore che ho fatto più di una volta. – rdelmar
Wow. Ha fatto anche questo errore. Pensavo ci fosse un po 'di magia nera al lavoro. Ma no. Sono stato ingannato grande tempo :) – villapossu