Я реализую collectionView, отображающий изображения, когда пользователь выбирает одно из изображений, он открывает изображение в largeMode.
Теперь мне нужно добавить кнопку в collectionView, чтобы позволить пользователю либо выбрать режим просмотра (как описано выше), либо режим выбора, где пользователь может выбрать несколько элементов для других целей.
Я пытался играть с
allowsMultipleSelection
когда пользователь выбирает кнопку, но эффекта нет.
Как я могу реализовать такую функцию?
РЕДАКТИРОВАТЬ: добавить пример кода
вот что я пробовал:
//button select mode
@IBAction func Selection(_ sender: Any) {
selectMode = !selectMode
print("select mode is now: \(selectMode)")
if(selectMode){
self.navigationItem.title = "Selection de Photos"
btnSelect.title = "Voir"
collectionView.allowsMultipleSelection=true
}
else{
self.navigationItem.title = "Gallerie"
btnSelect.title = "Selection"
collectionView.allowsMultipleSelection=false
}
}
и для дидселекта
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){
if collectionView.allowsMultipleSelection{
print("multi selection mode activated, no preview")
} else{
_selectedCells.add(indexPath)
collectionView.reloadItems(at: [indexPath])
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(!selectMode){
print("View mode")
if(segue.identifier as! String == "viewLargePhoto"){
let controller: ViewPhotoGallerie = segue.destination as! ViewPhotoGallerie
let indexPath: NSIndexPath = self.collectionView.indexPath(for:sender as! UICollectionViewCell) as! NSIndexPath
controller.index = indexPath.item
controller.photosAsset = self.photosAsset
controller.assetCollection = self.assetCollection
}
}
else{
print("Select mode")
}
}
, но если я нахожусь в режиме выбора (допускает значение MultipleSelection в false), запускается предварительный просмотр (segue), и я не могу выбрать несколько элементов.
EDIT2:
Я обновил свой код в соответствии с состоянием allowMultipleSelection, последовательность просмотра изображения в большом режиме все еще открыта, и затем я не могу выбрать несколько элементов.
вот мой код:
@IBAction func Selection(_ sender: Any) {
selectMode = !selectMode
print("select mode is now: \(selectMode)")
if(selectMode){
btnSelect.title = "Voir"
collectionView.allowsMultipleSelection=true
}
else{
btnSelect.title = "Selection"
collectionView.allowsMultipleSelection=false
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(!collectionView.allowsMultipleSelection){
print("View mode")
if(segue.identifier as! String == "viewLargePhoto"){
let controller: ViewPhotoGallerie = segue.destination as! ViewPhotoGallerie
let indexPath: NSIndexPath = self.collectionView.indexPath(for:sender as! UICollectionViewCell) as! NSIndexPath
controller.index = indexPath.item
controller.photosAsset = self.photosAsset
controller.assetCollection = self.assetCollection
}
}
else{
print("Select mode")
}
}