Dupa de fac scroll down/ up , obiectele din rindurile anterioare sunt acoperite de alte obiecte care nu au continutul corespunzator inregistrarilor aferente acelui cell .
Stie cineva care poate fi cauza ? voua vi s-a intimplat ?
Atasez o poza in care se poate observa ca obiectele sunt unele peste altele ( la poze ) .
Nu-ti merge pentru ca adaugi niste elemente si le lasi acolo, tabelul va refolosi o celula care a iesit din ecran in partea opusa, pentru eficienta, dar celula ta are deja niste elemente custom pe care nu le mai poti sterge.
Iti trebuie un CellView custom daca vrei sa adaugi elemente pe care UITableViewCell nu le contine. Mai exact, trebuie sa tii niste referinte catre acele elemente ca sa le poti updata cu noile date.
Nu mai folosi initiala mica la numele clasei, doar la ivar si metode
Daca faci aplicatia pentru iOS 5+ e foarte simplu sa lucrezi cu cell-uri custom.
Iti trebuie doar un IBOutlet catre tableView-ul tau, iar in viewDidLoad:
Dupa ce inregistrezi nib-ul cu tableView-ul nu mai trebuie sa verifici daca cell-ul e nil, se face automat verificarea, daca cell-ul e nil se creaza unu si ti-l returneaza, daca exista in queue disponibil ti-l returneaza pe acela.
Eu zic ca te complici fara rost, codul in acest fel e predispus la bug-uri.
Cel mai simplu subclasa la UITableViewCell, nib-ul creat in Interface Builder, in 5 min e gata
Probabil ai dreptate , dar cel mai scurt drum este cel pe care il cunosti .
La implementarea propusa de tine nu stiu cum as putea face , fara cod predispus la bug , ca atunci cind apas pe + sau - sa stiu ca ma refer la TextField-ul aflat intre ele ( inteleg ca tu vrei sa le desenez in IB ) .
Mi-a fost mai usor din cod sa atribui tag fiecarui obiect astfel incit actiunea butonului sa o pot scrie asa ( este aceeasi actiune pentru toate 12 afisate simultan , vezi poza de mai sus)
Pai indiferent ca ai label-uri, textfield-uri sau orice alte elemente tu daca faci subclasa la UITableViewCell in loc sa adaugi elemntele prin
cell.contentView addSubview: ...
poti foarte simplu sa le declari ca proprietati are cell-ului iar in cellForRowAtIndexPath doar le setezi valorile corespunzatoare.
De ex cum ai 4 textfield-uri intre “+” si “-” poti sa le decrari:
Depinde si cum ai modelul de date salvat, din imagine banuiesc ca fiecare produs e pus pe verticala cu o imagine, un label si 2 textfield-uri, 1 pentru cod ceva si unu pentru cantitate, numele tu le stabilesti in functie de model.
Chiar nu vad de nu faci subclasa cand ai atat de multe modificari de facut pe langa un cell standard
Cand o sa vezi cum iti sacadeaza tabelul o sa intelegi de ce e bine sa faci ca la carte. Elementele alea trebuie sa le creezi o singura data, fie din cod, fie ca din IB, apoi doar le updatezi.
Am facut .
Da , se face mult mai repede ( nu chiar in 5 minute ) si fara prea mult efort . Multumiri domnului Boboc pentru insistente .
Multumesc si tie .ral:cr . Am citit ce mi-ai dat .
Ma doare mina de la cat am scris la nume de proprietati , lungi si pe intelesul tuturor . Nici o abreviere .
Acum am inceput sa inteleg si eu ce scriu
Multumesc inca o data si ... stati aproape ! Cu siguranta o sa revin .
Xcode are autocomplete f bun, n-o sa-ti mai faci griji de denumiri lungi curand.
App de recomandari in scris codul, am dat ieri peste cea mai tampita incalcare a ei. Eu am o clasa HTTPRequest (ma rog, poate trebuia sa-i pun si un prefix), dar exista o librarie flickr care are o variabila HTTPRequest si cand era folosita credea ca apelez metode statice din clasa mea.