Это мой горячий сон, чтобы иметь UITableView с разными размерами строк, определенными программно. Я прочитал документацию UITableViewDataSource, и я реализую эти методы:Почему метод источника данных rowHeight не называется
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
, которые мы можем увидеть здесь:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return (CGFloat) 200.0f;
}
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell* test = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil ];
test.textLabel.text = @"TEST";
CGRect ffframe = test.frame;
ffframe.size.height *= 200.0f;
test.frame = ffframe;
return test;
}
Они просто пытаются сделать простую таблицу, с одной строки, и высота 200,0. Я пытаюсь вернуть высоту в методе делегата и установить его явно. Ничего не работает.
Я пытаюсь захватить метод heightForRow в отладчике, кажется, его никогда не вызывают.
Мои строки в таблице всегда соответствуют размеру, заданному в построителе интерфейса.
У меня есть источник данных, подключенный правильно, иначе он не получит строки и textLabel.
heightForRowAtIndexPath - это метод делегата, а не источник данных. Вы также установили свой объект в качестве делегата таблицы? – Vladimir