Я подклассифицировал UITableViewCell, чтобы настроить его, но я думаю, что у меня что-то не хватает, потому что: 1) он не работает и 2) Есть несколько вещей, в которые я запутался. Наряду с настройкой внешнего вида файла .xib, я также изменил backgroundView, и эта часть работает нормально. Часть, которую я наименее понимаю/меня больше всего смущает, - это метод init, поэтому я разместил это здесь. Если окажется, что это правильно, сообщите мне, чтобы я мог опубликовать больше кода, который может быть причиной.
Это метод init, который я настроил. Я немного запутался в идее "стиля", и я думаю, что просто возвращаю обычный UITableViewCell с другим backgroundView. Я имею в виду, что там ничего нет, что относится к .xib или ничего, кроме изменения .backgroundView из self:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier wait: (float) wait fadeOut: (float) fadeOut fadeIn: (float) fadeIn playFor: (float) playFor
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
CueLoadingView* lview = [[CueLoadingView alloc] initWithFrame:CGRectMake(0, 0, 320, 53)];
self.backgroundView = lview;
[self setWait:wait]; // in turn edits the lview through the backgrounView pointer
[self setFadeOut:fadeOut];
[self setFadeIn:fadeIn];
[self setPlayFor:playFor];
}
return self;
}
Помимо xix и нескольких сеттеров и геттеров, это единственная реальная часть моего кода, которая связана с извлечением ячейки.
Дополнительная информация:
1) Это мой .xib, который связан с классом.
2) Это код, который вызывает/создает UITableView (контроллер делегата/представления):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"CueTableCell";
CueTableCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[CueTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier wait:5.0 fadeOut:1.0 fadeIn:1.0 playFor:10.0];
[cell updateBarAt:15];
}
return cell;
}