UITableView - Как показать только те строки, которые содержат данные - PullRequest
10 голосов
/ 20 июня 2011

Как я могу показать UITableView Только строки, содержащие данные, а не другие строки. По умолчанию UITableView показывает 10 строк. Если у нас есть данные для трех строк, он будет отображать только три строки Как я могу это реализовать? Спасибо.

Ответы [ 7 ]

32 голосов
/ 30 марта 2012

Вы можете установить нижний колонтитул и сделать его невидимым, если хотите.Разделители появятся только для строк, которые содержат данные:

self.theTableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)] autorelease];
17 голосов
/ 07 августа 2013

Попробуйте это ..

self.tableView.tableFooterView = [UIView new];
2 голосов
/ 20 июня 2011

Я не думаю, что можно скрыть дополнительные разделители стандартным способом.Это поведение предустановлено.

Plain в стиле tableView отображается row/separator, даже если реальных строк не существует.Только Grouped в стиле tableView отображает только существующие строки.

Редактировать: По совету других, вы можете добавить нижний колонтитул в tableView, чтобы скрыть эти дополнительные разделители.

0 голосов
/ 13 декабря 2016

Просто добавьте приведенный ниже код в метод viewDidLoad ().

self.tableview.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
0 голосов
/ 20 августа 2013

Добавьте статическую ячейку, которая заполняет остальную часть экрана.

0 голосов
/ 20 июня 2011

ОК, я полагаю, вы используете Interface Builder.

Простой способ:

  1. убедитесь, что вы выбрали класс контроллера представления как UITableViewDelegate и UITabbleViewDataSource.

  2. В ViewController.h (или как там его называют) добавьте <UITableViewDelegate,UITableViewDataSource> перед {{@interface description]. к классу, который должен соответствовать этим протоколам.

  3. Убедитесь, что минимальные методы протокола источника данных находятся в классе:

    – tableView:cellForRowAtIndexPath:  
    – tableView:numberOfRowsInSection: 
    
  4. в - tableView: numberOfRowsInSection: метод, возвращающий количество требуемых строк - 3 или с помощью небольшого кода для вычисления этого свойства

  5. в - tableView: cellForRowAtIndexPath: метод делает то, что вам нужно, в ячейке и возвращает ее. Код котельной

    есть:

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
    
     if (cell == nil) 
     {
         cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];
     }
    
    cell.text = @"I am a cell";
    return cell;
    }
    

N.B. Если вы не используете Interface Builder, сделайте: tableView.delegate = self; tableView.datasource = self;

0 голосов
/ 20 июня 2011

Вы можете указать необходимое количество строк в параметре возврата следующей функции:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return NUMBER_OF_ROWS;
}

Для получения более подробной информации, пожалуйста, просмотрите документацию Apple по UITableView.

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html

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