2016-01-05 3 views
3

Я использую UITableviewcontroller, и я хочу, чтобы нижний колонтитул всегда оставался на внизу на экране. Однако позиция yнижнего колонтитула изменяется в соответствии с height из tableviewcell. Как я могу заставить его придерживаться нижней части экрана?Как я могу сделать footerview всегда оставаться внизу в UITableViewController?

+0

Использование свойства tableFooterView таблицы view –

+0

override func tableView (tableView: UITableView, viewForFooterInSection раздел: Int) -> UIView? { , если раздел == 1 { пусть footerView = UIView (кадр:. CGRectMake (0, UIScreen.mainScreen() bounds.height - 40, tableView.frame.size.width, 40)) возвращение footerView } return UIView() } Это на самом деле мой блок кода. Я хочу нижний колонтитул в нижней части экрана, но он не прилипает к нижней части экрана и не меняется в зависимости от высоты стола. –

+0

Отредактировано: = Я не думаю, что это возможно с uitableviewcontroller. Так что я добавил представление как подобие навигационного контроллера, и это сработало для меня :) –

ответ

-1

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

tableObj.tableFooterView = UIView(frame: CGRectMake(0, 0, 320, 150)) 
2

tableview Вид колонтитула всегда будет оставаться на дне tableview и всегда будет прокручиваться вместе с ним. Если вам нужно сделать снизу внизу внизу, то вы не сможете использовать TableViewController. Вам нужно будет использовать UIViewController, поместите свой tableView в качестве подзаголовка. Поместите нижний колонтитул в качестве другого подзаголовка и сделайте его.

+0

Я знаю, это звучит глупо. Но возможно ли добавить другой вид в tableviewcontroller? Здесь m работает над тем, для чего я должен использовать tableviewcontroller, поэтому не могу переключиться на контроллер вида. Я пытаюсь заставить его работать :(можно ли добавить любое другое представление в класс tableviewcontroller? И, возможно, заставьте его придерживаться нижней части –

+0

Если вы используете 'UINavigationController', вы добавляете свой' footerview' в качестве 'subview 'на ваш' navigationController'. Не забудьте удалить 'footerView' из' viewDidDisappear', иначе он появится со всеми вашими экранами в стеке навигации. – user1107173

-1

Вы можете добавить UIView в нижней части TableViewCell, таким образом, ваш нижний колонтитул всегда будет находиться внизу.

Проверить это LINK

+0

OP заявил: «Я хочу, чтобы просмотр нижнего колонтитула всегда оставался в нижней части экрана. " –

+0

@EugeneBraginets да, вот что ответ в ссылке выше. –

+0

@vivektakrani Ссылка не работает :( – Nathaniel

0

Swift код, который делает footerView заполнить остальное пространство в нижней части, , то вы можете использовать autolayout, чтобы просматривать на дне в footerView:

override func viewDidLayoutSubviews() 
{ 
    super.viewDidLayoutSubviews() 


    guard let footerView = tableView.tableFooterView else 
    { 
     return 
    } 

    var cellsHeight:CGFloat = tableView.tableHeaderView?.frame.height ?? 0 

    let sections = self.numberOfSections(in: tableView) 
    for section in 0..<sections 
    { 

     let rows = self.tableView(tableView, numberOfRowsInSection: section) 

     for row in 0..<rows 
     { 
      let indexPath = IndexPath(item: row, section: section) 
      cellsHeight += self.tableView(tableView, heightForRowAt: indexPath) 
     } 
    } 

    var frame = footerView.frame 

    frame.size.height = tableView.contentSize.height - cellsHeight; 
    frame.origin.y = cellsHeight 

    footerView.frame = frame 
} 
0

I столкнулись с той же проблемой, что на удивление Apple не решила из коробки. Посмотрите мой ответ здесь, он будет поддерживать нижний колонтитул внизу, независимо от того, сколько ячеек есть или как высокие клетки. https://stackoverflow.com/a/41816730/1553351

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