Το ερώτημα είναι απλό: Πώς μπορείτε να φορτώσετε έθιμο UITableViewCellαπό τα αρχεία ΧΙΒ; Με αυτόν τον τρόπο σας επιτρέπει να χρησιμοποιήσετε Interface Builder για το σχεδιασμό των κυττάρων σας. Η απάντηση προφανώς δεν είναι απλή λόγω προβλημάτων διαχείριση μνήμης. Αυτό το νήμα αναφέρει το πρόβλημα και προτείνει μια λύση, αλλά είναι προ NDA αποδέσμευσης και στερείται κώδικα. Εδώ είναι ένα μακρύ νήμα που ασχολείται με το θέμα, χωρίς να παρέχει μια οριστική απάντηση.
Εδώ είναι μερικά κωδικό που έχω χρησιμοποιήσει:
static NSString *CellIdentifier = @MyCellIdentifier;
MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = (MyCell *)[nib objectAtIndex:0];
}
Για να χρησιμοποιήσετε αυτόν τον κωδικό, να δημιουργήσετε MyCell.m / .h, μια νέα υποκατηγορία της UITableViewCellκαι να προσθέσετε IBOutletsτα στοιχεία που θέλετε. Στη συνέχεια, δημιουργήστε ένα νέο αρχείο «Empty ΧΙΒ». Ανοίξτε το αρχείο ΧΙβ στο IB, να προσθέσετε ένα UITableViewCellαντικείμενο, που αναγνωριστικό της σε «MyCellIdentifier», και καθόρισε την κατηγορία της να MyCell και προσθέστε τα συστατικά σας. Τέλος, συνδέστε το IBOutletsμε τα συστατικά. Σημειώνεται ότι δεν ορίζεται ιδιοκτήτη του αρχείου στο IB.
Άλλες μέθοδοι υποστηρίζουν τη ιδιοκτήτη του αρχείου και προειδοποιούν για τις διαρροές μνήμης, εάν η ΧΙβ δεν έχει φορτωθεί με επιπλέον κατηγορία εργοστάσιο. Θα δοκιμαστεί η ανωτέρω υπό Όργανα / διαρροές και είδε διαρροές μνήμης.
Έτσι ποια είναι η κανονική τρόπος για να φορτώσει τα κύτταρα από Xibs; Να θέτουμε Αρχείο κατόχου του; Χρειαζόμαστε ένα εργοστάσιο; Αν ναι, τι είναι ο κωδικός για το εργοστάσιο μοιάζει; Εάν υπάρχουν πολλαπλές λύσεις, ας διευκρινίσει τα πλεονεκτήματα και τα μειονεκτήματα της κάθε μία από αυτές ...














