Я использую collectionCell
, чтобы выбрать и снять выделение с изображения на collectionCell
. Но когда я нажимаю на выбранную ячейку, она не будет отменена.UICollectionView CustomCell- Невозможно отменить выбор уже выбранной ячейки
Я изменил свой код в соответствии с предложением Nirav, и он работает для текущего представления, но когда я прихожу из другого представления, передавая некоторый объект, тогда этот объект должен быть отмечен отмеченным. Если я нажмю на отмеченные объекты, которые выбраны, он не отменяет выбор ячейки.
Мой код
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
BICollectionCell *cell = (BICollectionCell *)[self.collectionView dequeueReusableCellWithReuseIdentifier:@"BICollectionCell" forIndexPath:indexPath];
CustVehiclesList *objCustVehiclesList =self.array_VehicleServicesList[indexPath.row];
[cell.labelMake setText:objCustVehiclesList.make];
[cell.lblLicense setText:objCustVehiclesList.licencePlateNo];
if (objCustVehiclesList.vehiclePicture == nil ||[objCustVehiclesList.vehiclePicture isEqualToString:@""])
{
[cell.imageCarsView setImage:[UIImage imageNamed:@"placeholder.png"]];
}
else
{
NSString *baseString = [NSString stringWithFormat:@"%@",objCustVehiclesList.vehiclePicture];
NSData* imageData = [[NSData alloc] initWithBase64EncodedString:baseString options:0];
UIImage *imageToDisplay = [UIImage imageWithData:imageData];
[cell.imageCarsView setImage:imageToDisplay];
}
[cell setSelected:YES];
[self.collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone];
if (self.selectedIndexPath == indexPath)
{
[cell.imgSelectedImage setImage:[UIImage imageNamed:@"vs_tick.png"]];
}
else
{
[cell.imgSelectedImage setImage:nil];
}
if ([objCustVehiclesList.modelName isEqualToString:self.str_ModelName] && _isCalledFromDetailVC)
{
[cell.imgSelectedImage setImage:[UIImage imageNamed:@"vs_tick.png"]];
}
if (indexPath.row == self.indexPathToBeSearch.row && self.isCalledFromVehicleVC)
{
[cell.imgSelectedImage setImage:[UIImage imageNamed:@"vs_tick.png"]];
}
return cell;
}
Заменяет ли 'BICollectionCell' setSelected:' или 'setSelected: animated:'. Если да, вызываете ли вы '[super setSelected: selected]' или '[super setSelected: selected animated: animated]' в нем? См. Http://stackoverflow.com/questions/15330844/uicollectionview-select-and-deselect-issue – Larme
@ Larme Я не переопределяю ни одну вещь в ячейке биколлекции, а также тоже существует – ChenSmile
Возможный дубликат [UICollectionView Включить отмену выбора ячеек, а allowMultipleSelection - отключено] (http://stackoverflow.com/questions/32423778/uicollectionview-enable-deselecting-cells-while-allowsmultipleselection-is-disab) – fishinear