UICellView Zellenlayout in swift

Ich versuche, mit einer UICollectionView ein Raster zu erstellen, das ein Benutzer als x-Zellen mal y-Zellen (in Textfelder eingegeben) festlegen kann, während er auf dem Bildschirm immer noch dieselbe Breite einnimmt.

Ich konnte eine Rasteransicht erstellen, die die richtige Anzahl von Zellen enthält, aber diese sind noch nicht im richtigen Layout, d. H. Die Eingabe von 5 x 7 ergibt 35 Zellen, jedoch nicht in einem 5 x 7-Zellen-Layout. Dies ist der Code, den ich bisher habe.

MyCollectionViewCell.swift UIKit importieren

class MyCollectionViewCell: UICollectionViewCell {

    @IBOutlet var cellLabel: UILabel!

}

CreateNewProject.swift

class CreateNewProject : UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UITextFieldDelegate {

    @IBOutlet var widthTextBox: UITextField!

    @IBOutlet var lengthTextBox: UITextField!

    @IBOutlet var myCollection: UICollectionView!

    let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard

    @IBAction func updateView(sender: AnyObject) {
        let widthValue = Int(widthTextBox.text!)
        let lengthValue = Int(lengthTextBox.text!)
        multiplyValue = Int(widthValue! * lengthValue!)
        createArray()
    }


    func createArray() {
        var i = 0
        while i < multiplyValue {
            items.append("")
            i += 1
        }
        myCollection.reloadData()
    }


    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        print(self.items.count)
    }

    // make a cell for each cell index path
    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

        // get a reference to storyboard cell
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! MyCollectionViewCell

        // Use the outlet in custom class to get a reference to the UILabel in the cell
        cell.cellLabel.text = self.items[indexPath.item]
        cell.backgroundColor = UIColor.lightGrayColor()

        return cell
    }    
}

Ich habe die UICollectionView auf der linken, rechten und oberen Seite eingeschränkt und wollte die Größe der Zellen in der Auflistungsansicht programmgesteuert auf UICollectionView.width / x ändern (die vom Benutzer festgelegte Anzahl von Zellen).

Sie sind sich nicht sicher, wie Sie dies am besten erreichen können, und müssen außerdem einen Leerraum zwischen den einzelnen Zellen einhalten. Jede Hilfe wäre sehr dankbar!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage