2017-11-03 1 views
2

Ich setze die Sammlung Ansicht in die Tabellenansicht Zelle und ich machte es auf der Zelle angezeigt, aber wenn ich die Sammlungszelle (um die Farbe oder Druckzellennummer ändern möchten)), die Auswahlfunktion funktioniert nicht, ich muss die Zelle mehrmals antippen, um sie auszuwählen. Warum erkennt die Zelle langsam den ausgewählten Gegenstand? Welcher Code beeinflusst die auszuwählende Zelle?Sammlungsansicht Zelle langsam erkennen ausgewählten Artikel in Swift

Dies ist der Code für wählen Sie die Sammelzelle

override func awakeFromNib() { 
    super.awakeFromNib() 

    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
    let width = UIScreen.main.bounds.width 
    layout.scrollDirection = .vertical 
    layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
    layout.itemSize = CGSize(width: width/5, height: width/4) 
    layout.minimumInteritemSpacing = 0 
    layout.minimumLineSpacing = 0 
    collectionView?.collectionViewLayout = layout 
    collectionView?.delaysContentTouches = false 

} 

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionViewCell", for: indexPath) as! CategoryCollectionViewCell 
    cell.cateImg.image = imageName[indexPath.row] 
    cell.cateLabel.text! = nameArray[indexPath.row] 
    return cell 
} 

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
    if let cell = collectionView.cellForItem(at: indexPath) as? CategoryCollectionViewCell { 
     cell.cateImg.image = imageName2[indexPath.row] 
     print("collectionViewCell selected \(indexPath)") 
    } 
} 

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) { 
    if let cell = collectionView.cellForItem(at: indexPath) as? CategoryCollectionViewCell { 
     cell.cateImg.image = imageName[indexPath.row] 
    } 
} 

enter image description here

Projekt zip Link: https://www.dropbox.com/s/y10dgp3q61pi5n1/Finnciti.zip?dl=0

Problem auf AddViewCell.swift

+0

Ich habe genau das gleiche Problem. Ich habe Schwierigkeiten, die Frage zu formulieren. Viel Glück hier. –

Antwort

3

Ich habe das Problem behoben, nachdem dieser Code auf AddViewController gelöscht wurde.

2

Versuchen Sie dieses Häkchen abzuwählen in Sammlung Ansicht Eigenschaften

enter image description here

+0

Versucht, kann immer noch nicht. Ich habe mein Projekt zip hochgeladen, vielleicht kann ich das Problem schneller herausfinden. –

+0

Wusste nicht, dass diese Einstellung existiert. Vielen Dank! –

0

In AddViewController fügen Sie der Ansicht Gestenerkenner hinzu, mit denen jede Benutzergeste vom Tap-Erkenner erkannt wird. Sie können diese Geste entfernen:

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(AddViewController.dismissKeyboard)) 

Für Tastatur Entlassung können Sie tebleView Delegatmethode implementieren:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     dismissKeyboard() 
    } 
Verwandte Themen