Warum initialisiert initWithCoder Elemente nicht richtig?

Ich habe eine Unterklasse vonUITableViewCell. Meine Unterklasse enthält mehrereUILabels. Ich möchte, dass meine Unterklasse diese Beschriftungen mit einigen Standardeinstellungen initialisiert, die für jede meiner Tabellenzellen gelten.

Ich habe gelesen, dass ich verwenden sollteinitWithCoder dafür. MeineinitWithCoder Funktion wird aufgerufen, und ich kann jede Zeile in meiner Funktion durchlaufen, und es scheint, als ob sie die Bewegungen durchläuft. Wenn ich meine Anwendung ausführe, werden jedoch keine der Eigenschaften angewendet. Am auffälligsten ist, dass die Schriftart nicht geändert wird. Ich denke nur nicht an die Eigenschaften, die ich an meinem ändereUILabels werden tatsächlich gespeichert oder angezeigt.

Ich benutze diese Unterklasse in Verbindung mit aStoryboard. Ich weiß, dass meine Änderungen nicht auf der Website angezeigt werdenStoryboardAber sie werden auch nicht wiedergegeben, wenn die Anwendung ausgeführt wird - obwohl mein Code ausgeführt wird.

Edit: Ich wollte das erwähnen, bevor ich versuche, es zu überschreibeninitWithCoderIch hatte eine Instanzmethode in diesen Unterklassen, in der ich diese Logik ausführen würde. Ich würde diese Instanzmethode nur innerhalb von aufrufencellForRowAtIndexPath. Diese Methode hat funktioniert, aber ich dachte, es wäre praktisch, wenn diese Logik in dieser Unterklasse automatisch auftritt.

Irgendwelche Ideen? Mein Code ist unten:

#import "ThreadListCell.h"

@implementation ThreadListCell

- (id)initWithCoder:(NSCoder *)aDecoder {

    if ((self = [super initWithCoder:aDecoder])) {

        // adjust the font settings of the title
        self.title.font = [UIFont fontWithName:@"SourceSansPro-Black" size:16];
        self.title.textColor = [UIColor colorWithWhite:0.267f alpha:1.0f];

        // adjust the font settings of the subtitle
        self.text.font = [UIFont fontWithName:@"SourceSansPro-Light" size:14];
        self.text.textColor = [UIColor colorWithWhite:0.267f alpha:0.9f];
        self.text.textColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:1];

        // adjust the font settings of the location
        self.location.font = [UIFont fontWithName:@"SourceSansPro-Light" size:8];
        self.location.textColor = [UIColor colorWithWhite:0.267f alpha:0.9f];

        // adjust the UILabel settings of the title
        self.title.numberOfLines = 0;
        self.title.lineBreakMode = UILineBreakModeTailTruncation;

        // adjust the UILabel settings of the subtitle
        self.text.numberOfLines = 0;
        self.text.lineBreakMode = UILineBreakModeTailTruncation;

        // adjust the UILabel settings of the location
        self.location.numberOfLines = 0;
        self.location.lineBreakMode = UILineBreakModeTailTruncation;
        self.location.textAlignment = UITextAlignmentRight;

    }

    return self;

}

@end

Und der Header:

#import <UIKit/UIKit.h>

@interface ThreadListCell : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *text;
@property (nonatomic, weak) IBOutlet UILabel *title;
@property (nonatomic, weak) IBOutlet UILabel *location;

@end

Antworten auf die Frage(1)

Ihre Antwort auf die Frage