У меня есть подкласс UITableViewCell
. Мой подкласс содержит несколько UILabel
s. Я хочу, чтобы мой подкласс инициализировал эти метки некоторыми настройками по умолчанию, которые применяются ко всем ячейкам таблицы.
Я читал, что для этого я должен использовать initWithCoder
. Моя функция initWithCoder
вызывается, и я могу проходить через каждую строку в моей функции и, по-видимому, проходит через движения. Однако, когда я запускаю свое приложение, я не вижу никаких примененных свойств. Наиболее заметно, что шрифт не изменяется. Я просто не думаю, что какие-либо свойства, которые я изменяю на моем UILabel
, фактически сохраняются или отображаются.
Я использую этот подкласс в сочетании с Storyboard
. Я знаю, что мои изменения не будут отражены в Storyboard
, но они также не отражаются при запуске приложения, несмотря на то, что мой код выполняется.
Изменить: я хотел упомянуть, что перед попыткой переопределить initWithCoder
у меня был метод экземпляра в этих подклассах, в котором я бы запустил эту логику. Я бы просто вызвал этот метод экземпляра внутри cellForRowAtIndexPath
. Этот метод работал, но я подумал, что было бы удобно, чтобы эта логика в этом подклассе возникла автоматически.
Любые идеи? Мой код ниже:
#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
И заголовок:
#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