2015-11-26 8 views
0

У меня есть UITableViewController, связанный с UINavigationController в моей раскадровке. когда я прокручиваю вниз свой стол, я вижу, что строки идут на заднюю сторону в «навигационную панель».Влияние навигационной панели UITableViewController

Выполняя краткий обзор, я понял, что панель навигации не влияет на размер таблицы (кажется, что панель навигации находится перед моей таблицей). Так когда я выбираю размер таблицы:

-(CGFloat)tableView:(UITableView *)tableViews heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    CGFloat value = tableViews.frame.size.height; 

    NSLog(@"Table size -> %f",value); 

    return value/2; 

} 

Он возвращает тот же размер, Os мое окно ... что я мог сделать, чтобы «панель навигации», чтобы влиять на размер моего стола?

ответ

1

У вас есть несколько вариантов. Попробуйте выполнить одно из следующих действий:

  1. Вычитайте высоту панели навигации и строку состояния из высоты рамы стола.

    CGFloat value = tableViews.frame.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame); 
    
  2. Не помещайте вид стола за панель навигации. Исправить это, добавив следующую строку в таблице контроллер представления viewDidLoad:

    self.edgesForExtendedLayout = UIRectEdgeLeft | UIRectEdgeRight; 
    

    Это предотвращает табличные от идти под навигационной панелью или на панели инструментов.

Еще одно примечание. Если вы хотите, чтобы все строки имели одинаковую высоту, не используйте метод heightForRowAtIndexPath. Вместо этого просто установите свойство rowHeight вида таблицы.

+0

Работает как очарование, спасибо: D – LettersBa

Смежные вопросы