2017-02-20 36 views
0

Я пытаюсь выяснить, как сделать содержимое UITableView «центрированным» вокруг региона, содержащегося в двух барах по обе стороны экрана, чтобы оно работало на устройств всех размеров экрана. Что я имею в виду это:Как сделать содержимое UITableView прокруткой по центральной точке

  • Исходное состояние зрения должны иметь первую ячейку в этой области
  • Табличный должен быть в состоянии прокрутить до последней ячейки не находится внутри этой области
  • клетки не должны исчезнуть, если они все еще на экране

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

Мне интересно, совсем ли это неправильный подход, или у меня просто неправильная комбинация настроек.

Любые советы были бы высоко оценены!

Screen

ответ

0

следующие работы для меня:

//In viewDidLoad, etc...: 
self.edgesForExtendedLayout = UIRectEdgeNone; 
self.automaticallyAdjustsScrollViewInsets = YES; 

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    let inset = (self.tableView.frame.size.height - 44)/2.0 // Figure out your bar size here 

    self.tableView.contentInset.top = inset 
    self.tableView.contentInset.bottom = inset 

    let path = NSIndexPath(row: 0, section: 0) as IndexPath 

    self.tableView.scrollToRow(at: path, at: .middle, animated: false) 
}