hvordan du legger til listeelementer i tabellvisning i rask 5

stemmer
0

Jeg prøver å legge til elementer i en tabellvisning. Jeg kan se at hver gang jeg klikker på knappen en ny rad settes inn i tabellen, men cellen er tom. Når jeg feilsøke koden kan jeg se alle elementene i listen, men jeg kan ikke se dem vises på app selv. Elementene 1, 2 og 3 vises ikke så godt

@IBOutlet weak var itemLbl: UITextField!
    var items: [String] = [1, 2, 3]

override func viewDidLoad() {
        super.viewDidLoad()
        tableView.tableFooterView = UIView(frame: CGRect.zero)


    }

func insertItem(){
    items.append(itemLbl.text!)

    let indexPath = IndexPath(row: items.count - 1,section: 0 )
    tableView.beginUpdates()
    tableView.insertRows(at: [indexPath], with: .automatic)
    tableView.endUpdates()
    itemLbl.text = 
    view.endEditing(true)
}

Så innsatsen virker, men jeg bare ikke kan vise tekst i tabellen. Jeg får en ny celle for hvert element som jeg legge til, men det er bare hvitt tomrom, i stedet for verdien som jeg nettopp har lagt

REDIGERE:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let itemLbl  =  items[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: ItemCell) as! ItemCell

        cell.itemLbl.text = itemLbl
        return cell
    }
Publisert på 02/12/2019 klokken 23:56
kilden bruker
På andre språk...                            


3 svar

stemmer
0

Har du prøvd å bruke tableView.reloadData()? Også, ikke tvinge pakke ut itemLabel.text.

func insertItem(){
    if let itemText = itemLabel.text {
       items.append(itemText)

       tableView.reloadData()
    }
}

Sørg for å også legge til tableView.reloadData()på slutten av viewDidLoad().

Svarte 03/12/2019 kl. 00:16
kilden bruker

stemmer
1

Det er best å laste bordet når datakilden endres, som du kan gjøre som dette:

var items: [String] = ["1", "2", "3"] {
    didSet {
        tableView.reloadData()
    }
}

func insertItem(){
    if let text = itemLbl.text { 
        items.append(itemLbl.text)
    }
}
Svarte 03/12/2019 kl. 00:54
kilden bruker

stemmer
0

Det er flere muligheter som kan forårsake dette problemet. Det første du bør sjekke er at i listen din, sørg for at du bruker en gjenbruks identifikator for cellen prototype og at du refererer det. I tillegg, må du laste bordet når du legger til et element (ikke hele tiden gjøre det som det vil tappe brukerens batteri). Hvis ingen av disse fungerer, er det mulig du ikke koble uttak riktig.

Svarte 03/12/2019 kl. 02:24
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more