Я застрял на следующем: я хочу использовать одну ячейку UITableView в качестве представления заголовка для другого UITableView.Второе табличное представление, в свою очередь, является объектом, унаследованным от другого класса UITableView, поскольку он полностью разделяет его функциональность.Единственное отличие в том, что второй UITableView имеет вид заголовка (который должен быть одноклеточным UITableView).
Интерфейс для UITableView с заголовком выглядит так:
#import <UIKit/UIKit.h>
#import "ScheduleDetailsController.h"
@interface TodayDetailsViewController : ScheduleDetailsController <UITableViewDelegate, UITableViewDataSource> {
UITableView *headerView;
}
@property (nonatomic, retain) UITableView *headerView;
@end
А реализация вроде:
#import "TodayDetailsViewController.h"
@implementation TodayDetailsViewController
@synthesize headerView;
- (void)loadView {
[super loadView];
self.headerView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.headerView.backgroundColor = [UIColor clearColor];
self.headerView.opaque = NO;
self.headerView.delegate = self;
self.headerView.dataSource = self;
// This is a UITableView defined as a property in the parent class
self.scheduleDetailsTable.tableHeaderView = self.headerView;
}
...
#pragma mark -
#pragma mark Table View Data Source Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == self.scheduleDetailsTable.tableHeaderView)
return 1;
else
return [self.scheduleDetailsTable numberOfSections];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView == self.scheduleDetailsTable.tableHeaderView)
return 1;
else
return [self.scheduleDetailsTable numberOfRowsInSection:section];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.scheduleDetailsTable.tableHeaderView) {
...
return cell;
} else
return [self.scheduleDetailsTable cellForRowAtIndexPath:indexPath];
}
@end
Я не получаю ошибок при компиляции и запускено тогда я тоже ничего не вижу, т.е. вид остается пустым.Я также попробовал это с заменой представления заголовка на UIView, и тогда все работает как ожидалось (то есть представление таблицы в родительском классе реализовано правильно).Я, наверное, просто упускаю что-то очевидное, но я просто не могу понять это в данный момент.Если бы кто-то мог обнаружить ошибку или дать какой-то совет, я был бы очень благодарен.