Разрыв появляется после удаления раздела из Grouped UITableView - PullRequest
1 голос
/ 14 сентября 2011

В моей таблице 3 раздела, каждый из которых содержит не более 1 строки.

Однако центральный ряд, в зависимости от переменной, может отображаться или не отображаться в представлении таблицы.Моя реализация кода для этого выглядит следующим образом:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSString *currentUserId = [[UserStockInfo sharedUserStockInfo]getUserId];
    switch (section) {
        case 0: //Follow button
            return 1;
            break;

        case 1://Center cell
            if (self.user.exists) {
                return 1;
            }
            else {
                return 0;
            }
            break;

        case 2://question
            return 1;

        default:
            return 0;
            break;
        }

}

Проблема, с которой я сталкиваюсь, заключается в том, что для случаев, когда центральная ячейка не должна отображаться, между первым и третьим разделами по-прежнему появляется разрыв (как виднониже).Как я могу избавиться от лишнего разрыва после удаления центральной ячейки?

С центральной ячейкой / секцией:

enter image description here

Без центральной ячейки / секции (появляется зазор):

enter image description here

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Я думаю, вам следует реализовать (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if (self.user.exists) {
        return 3;
    }
    return 2;
}
1 голос
/ 14 сентября 2011

Вы должны установить соответствующие высоты нижнего колонтитула и заголовка вашего UITableView.

Реализуйте следующие методы в вашем делегате:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

Например, для второго раздела вы можете вернуть 0:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
     if (section == 1) return 0;
     else return 10;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
     if (section == 1) return 0;
     else return 10;
}

Надеюсь, это поможет вам

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