Da ich kein Framework verwenden konnte, um ein Fotoalbum zu erstellen, versuche ich, meine eigene mit Collection View zu erstellen, aber ich blieb gleich am Anfang stecken.Umgang mit Tap-Geste in einer UICollectionView
Mein Ziel ist es, alle Bilder von meinem Web-Service in meine Sammlung anzeigen, da alle angezeigt wird, der nächste Schritt ist, wenn jemand auf eine Zelle klickt, ich kann es in einer neuen Ansicht öffnen und auch zwischen allen navigieren.
hier ist der grundlegende Code, den ich erstellt:
- (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");
}
Danke Jungs.
Verstanden, Ich reparierte bereits diese Probleme, mein Fehler, wenn ich auf Englisch meine Methoden Namen wurde zu übersetzen. Danke für die Hilfe, jetzt muss ich herausfinden, wie man das im UICollectionViewDelegate macht, weil ich keine Ahnung habe. Können Sie mir ein Beispiel oder etwas ähnliches geben? –
Ok, also muss ich diese Methode aufrufen - (BOOL) collectionView: (UICollectionView *) collectionView sollteSelectItemAtIndexPath: (NSIndexPath *) indexPath; und die Geste darin erstellen? –
Das ist eigentlich viel einfacher. Wenn Sie die delegates-Methode implementieren, benötigen Sie keine Gestenerkennung. Der Delegat ruft die Implementierung seiner Methoden auf, wenn eine Berührung erkannt wird. Beachten Sie, dass Sie 'shallSelect..' oder' didSelect..' nicht explizit aufrufen müssen, der Delegierte erledigt dies für Sie. –