ponieważ nie mogłem użyć żadnej struktury do stworzenia albumu fotograficznego, staram się tworzyć własne za pomocą widoku kolekcji, ale utknąłem na samym początku.Obsługa Gesty dotykowe w UICollectionView
Moim celem jest wyświetlenie wszystkich obrazów z mojego serwisu internetowego w moim widoku kolekcji, ponieważ wszystkie wyświetlane, następnym krokiem jest, gdy ktoś dotknie dowolnej komórki, mogę otworzyć ją w nowym widoku, a także nawigować między wszystkimi.
tutaj jest podstawowy kod, który stworzyłem:
- (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");
}
Dzięki chłopaki.
Got to, ja już rozwiążesz te problemy, mój błąd, kiedy moje tłumaczenia nazw metod, aby po angielsku. Dzięki za pomoc, teraz muszę to zrozumieć, jak to zrobić w UICollectionViewDelegate, ponieważ nie mam pojęcia. Czy możesz dać mi przykład lub coś w tym stylu? –
Ok, więc muszę nazwać tę metodę - (BOOL) collectionView: (UICollectionView *) collectionView shouldSelectItemAtIndexPath: (NSIndexPath *) indexPath; i stworzyć w nim gest? –
To jest znacznie prostsze. Jeśli zaimplementujesz metody delegatów, nie potrzebujesz rozpoznawania gestów. Delegat wywoła implementację swoich metod po wykryciu dotyku. Zauważ, że nie powinieneś wyraźnie wywoływać 'shouldSelect..' lub' didSelect..' jawnie, delegat robi to za ciebie. –