ios xcode - Perché l'uscita di UICollectionViewCell è nulla?





swift delegate (6)


Devo registrare quel tipo di pennino!

collectionView.register(UINib(nibName: "CustomCell", bundle: nil), forCellWithReuseIdentifier: "CustomCellId")

Ho creato un UICollectionViewCell personalizzato in Interface Builder, le viste associate alla classe, e poi quando voglio usare e impostare una stringa sull'etichetta sulla stringa, l'etichetta ha un valore nullo.

override func viewDidLoad() {
    super.viewDidLoad()

    // Register cell classes
    self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
}

override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {

    var cell: LeftMenuCollectionViewCell
    cell = collectionView.dequeueReusableCellWithReuseIdentifier("ls", forIndexPath: indexPath) as LeftMenuCollectionViewCell
    println(cell.label) // <- this is nil, why??
    cell.label.text = "asd"

    return cell
}

E la cella sottoclasse:

class LeftMenuCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}



Ho un problema simile. Io uso lo storyboard e set reuseIdentifier lo stesso ovunque. Nello storyboard sulla cella e nel seguente metodo:

override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!

Ma ho ancora problemi che i miei punti di vista nella mia customcell sono nulli.

class CustomCell: UICollectionViewCell { @IBOutlet weak var myLabel: UILabel! }



Sto chiamando self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls") . Se stai usando uno storyboard non vuoi chiamarlo . Sovrascriverà ciò che hai nel tuo storyboard.

Se hai ancora il problema, controlla se reuseIdentifier è uguale in dequeueReusableCellWithReuseIdentifier e nello storyboard .




Se stai usando xib, assicurati di aver aggiunto questa riga di codice al tuo viewdidload.

[self.collectionView registerNib:[UINib nibWithNibName:@"MyCell" bundle:nil] forCellWithReuseIdentifier:@"CELL"];



Ho avuto un problema simile, ma il mio errore è stato che non ho delegato CollectionViewCell a modificare il testo dell'etichetta.




Per ottenere un elemento dalla matrice nella cella tableView toccato o fatto clic in rapido

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell
    cell.textLabel?.text= arr_AsianCountries[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexpath = arr_AsianCountries[indexPath.row]
print("indexpath:\(indexpath)")
}




ios swift interface-builder ios8 uicollectionviewcell