Я создаю подкласс UIView (MultiColumnTableView), который будет содержать пару табличных представлений. Однако, когда я добавляю свой пользовательский просмотр в качестве подзадачи в контроллер просмотра, он никогда не отображается, и я действительно не могу понять, почему?Подкласс UIView не отображается
Я добавляю его с этим кодом на мой взгляд, корень контроллера:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_multiColumnTableView = [[MultiColumnTableView alloc] initWithNumberOfColums:3 columnWidth:200 frame:CGRectMake(100, 100, 0, 400)];
_multiColumnTableView.dataSource = self;
_multiColumnTableView.delegate = self;
[self.view addSubview:_multiColumnTableView];
[_multiColumnTableView reloadData];
}
Пользовательский класс инициализатор содержит следующий код:
- (id)initWithNumberOfColums:(NSInteger)columns columnWidth:(float)width frame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.numberOfColumns = columns;
self.columnWidth = columnWidth;
self.bounds = CGRectMake(0, 0, columnWidth * numberOfColumns, self.bounds.size.height);
_tableViews = [NSMutableArray new];
// Create all the desired colums (= tableViews)
for (int i = 0; i < numberOfColumns; i++) {
UITableView *t = [[UITableView alloc] initWithFrame:CGRectMake(columnWidth * i, 0, columnWidth, self.bounds.size.height)];
[_tableViews addObject:t];
t.tag = i;
t.backgroundColor = [UIColor blueColor];
t.dataSource = self;
t.delegate = self;
[self addSubview:t];
}
}
return self;
}
Я ожидал увидеть некоторые синий стол но они не видны, и поэтому они никогда не вызывают cellForRowAtIndexPath :, но они вызывают номерOfRowsInSection. Мое пользовательское subview добавлено в корневой вид. При подсчете подпунктов он возвращает 1. Может ли кто-нибудь увидеть проблему?
Для каждого стола в вашем представлении, следует ли ему называть «reloadData»? – Tom
Да, и это так. У меня есть пользовательский reloadData в моем классе, который проходит через все из них. – Accatyyc
Вы уверены, что ваша петля на самом деле попала? Я бы предложил Logging кадр каждого 'UITableView', чтобы убедиться, что это то, что вы ожидаете. – skram