poiché non è possibile utilizzare alcun framework per creare un album di foto, sto cercando di crearne uno utilizzando Raccolta vista, ma all'inizio mi sono bloccato.Gestione del gesto di tocco in un UICollectionView
Il mio obiettivo è quello di visualizzare tutte le immagini dal mio servizio web nella mia vista raccolta, poiché tutte visualizzate, il passo successivo è quando qualcuno tocca una cella, posso aprirla in una nuova vista e navigare tra tutte.
ecco il codice di base che ho creato:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[collectionController reloadData];
tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:nil action:@selector(touched)];
tapGesture.numberOfTapsRequired = 1;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return 6;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier = @"Cell";
CollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
[cell.imgCollection setImageWithURL:[NSURL URLWithString:@"http://sallescds.com.br/wp-content/uploads/2012/12/xepop-300x300.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
[cell.imgCollection addGestureRecognizer:tapGesture];
return cell;
}
-(void)touched:(UIGestureRecognizer *)tap{
NSLog(@"the touch happened");
}
grazie ragazzi.
capito, ho già fissato questi problemi, il mio errore quando stavo traducendo i miei nomi metodi per inglese. Grazie per l'aiuto, ora devo capirlo, come farlo in UICollectionViewDelegate, perché non ne ho idea. Potresti darmi un esempio o qualcosa del genere? –
Ok, quindi devo chiamare questo metodo - (BOOL) collectionView: (UICollectionView *) collectionView shouldSelectItemAtIndexPath: (NSIndexPath *) indexPath; e creare il gesto al suo interno? –
Questo è in realtà molto più semplice. Se si implementano i metodi dei delegati, non sono necessari riconoscitori di gesti. Il delegato chiamerà l'implementazione dei suoi metodi quando viene rilevato un tocco. Nota che non dovresti chiamare esplicitamente 'shouldSelect..' o' didSelect..', il delegato lo fa per te. –