Почему метод источника данных rowHeight не вызывается - PullRequest
1 голос
/ 08 сентября 2010

Моя горячая мечта - иметь UITableView с различными размерами строк, определяемыми программно.Я прочитал документацию по UITableViewDataSource и реализую эти методы:

- (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.

Ответы [ 2 ]

6 голосов
/ 08 сентября 2010

Это метод делегата, поэтому убедитесь, что у вас есть

self.tableview.delegate = self;

в viewDidLoad, либо у вас есть свойство делегата tableview в xib, связанное с контроллером.

2 голосов
/ 12 октября 2015

Осторожно, этот метод представляет собой таблицу delegate, а не dataSource метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...