, так как я не мог использовать фреймворк для создания фотоальбома, я пытаюсь создать свой собственный, используя Collection View, но я застрял в самом начале.Обработка жестов нажатия в UICollectionView
Моя цель состоит в том, чтобы отображать все изображения с моего веб-сервиса в моем представлении коллекции, так как все отображаемые, следующий шаг - когда кто-то нажимает на любую ячейку, я могу открыть ее в новом представлении, а также перемещаться между всеми.
здесь основной код, который я создал:
- (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");
}
благодарит ребят.
Понял, я уже устранили проблемы, моя ошибка, когда я переводил свои имена методов на английский. Спасибо за помощь, теперь я должен понять, как это сделать в UICollectionViewDelegate, потому что я понятия не имею. Не могли бы вы привести мне пример или что-то в этом роде? –
Итак, я должен вызвать этот метод - (BOOL) collectionView: (UICollectionView *) collectionView shouldSelectItemAtIndexPath: (NSIndexPath *) indexPath; и создать жест внутри него? –
Это на самом деле гораздо проще. Если вы применяете методы делегатов, вам не нужны распознаватели жестов. Делегат будет называть вашу реализацию своих методов при обнаружении касания. Обратите внимание, что вам не нужно явно вызывать 'shouldSelect..' или' didSelect..', делегат делает это за вас. –