Domanda

Sto cercando di creare un uitableView come l'app del calendario nativo:

enter image description here

Ma sto cercando di imparare il modo migliore per farlo. Sono in grado di ottenerlo per la maggior parte con un'istruzione Switch nel metodo CellForrowAtIndexPath, ma ho problemi a cambiare il testo quando viene selezionata una cella.

Per qualche motivo la cella. Hisselced è sempre no e non ho modo di ricaricare la tabella dopo che un'altra cella è stata comunque selezionata.

Dovrei sottoclasse UtableViewCell per qualcosa di così semplice e conservare una serie di celle?

Qualsiasi aiuto sarebbe apprezzato, grazie.

È stato utile?

Soluzione

Non è necessario sottoclasse, come affermato nel App Doc La funzione di delega:

tableView:willSelectRowAtIndexPath:

dovrebbe fare il trucco

MODIFICARE:

Di seguito trovi un codice che dovrebbe dimostrare l'idea di usare il delegato. Si prega di notare che questo codice non è testato, poiché attualmente non sono di fronte al mio codice X.

-(void)willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (prevIndexPath != nil) {
        UITableViewCell* prevCell = [self.tableView cellForRowAtIndexPath: prevIndexPath];
        prevCell.textLabel.textColor = [UIColor black]; // your initial color here
    }

    UITableViewCell* cell = [self.tableView cellForRowAtIndexPath: indexPath];
    cell.textLabel.textColor = [UIColor green];

    prevIndexPath = indexPath;
}

Assicurati di impostare il protocollo UableViewDelegate sulla tua classe di controllo che gestisce la tua tabella e impostare tableviews.delegate su quello.

Per eseguire questo codice, devi anche definire una proprietà o una variabile con il nome PrevindexPath. Questo contiene la cella precedentemente selezionata necessaria per tornare alla cella al suo colore iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top