-1
셀을 탭하여 이미지를 확대하고 확대 된 이미지를 탭하면 각 셀에 선택 표시가 있으므로 컬렉션을 선택할 수 있습니다. 나중에 선택한 이미지를 다운로드하십시오. 코드는 때로는 체크 표시를 두 번 선택하거나 선택을 해제해야한다는 사실을 제외하고 거의 작동합니다. 나는 실종 된 것을 정말로 이해하지 못한다.하지만 내 코드는 다음과 같다.두 번 가볍게 두드리면 컬렉션보기의 체크 표시가 강조 표시됩니다.
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "photoCell", for: indexPath) as! PhotoCell
let tap = UITapGestureRecognizer(target: self, action: #selector(checkmarkWasTapped(_ :)))
cell.backgroundColor = .clear
cell.imageView.image = UIImage(contentsOfFile: imagesURLArray[indexPath.row].path)
cell.checkmarkView.checkMarkStyle = .GrayedOut
cell.checkmarkView.tag = indexPath.row
cell.checkmarkView.addGestureRecognizer(tap)
return cell
}
func checkmarkWasTapped(_ sender: UIGestureRecognizer) {
let checkmarkView = sender.view as! SSCheckMark
let indexPath = IndexPath(row: checkmarkView.tag, section: 0)
let imageURL = imagesURLArray[indexPath.row]
if checkmarkView.checked == true {
checkmarkView.checked = false
selectedImagesArray.remove(at: selectedImagesArray.index(of: imageURL)!)
} else {
checkmarkView.checked = true
selectedImagesArray.append(imageURL)
}
collectionView.reloadItems(at: [indexPath])
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
addZoomedImage(indexPath.row)
addGestureToImage()
addBackGroundView()
view.addSubview(selectedImage)
}
어떤 도움이 될 것이다. 감사합니다
안녕하세요. 답장을 보내 주셔서 감사합니다. if 문은 각 리로드에서 선택 항목을 바꿀 필요가 없습니까? if (boolArray [indexPath.row]) {' – Wazza
boolArray [indexPath.row]가 false가되기 전에 사용자가 셀을 북마크하지 않았 으면 셀로드시 checkmarkView가 선택 취소됩니다. 그렇지 않으면 확인 될거야. checkmarkView가 그렇게 작동한다면? –
viewdidload에서 bool 배열을 false로 채우고 'if! (boolArray [indexPath.row]) '를 사용하면 모두 체크가 해제되어 있지만 check를 선택하면 즉시 체크가 해제됩니다. if if (boolArray [indexPath.row])'그러면 그것들은 모두 검사되고 내가 그들을 선택할 때 아무 일도 일어나지 않습니다. – Wazza