如何使UITableView内容围绕中心点滚动

时间:2017-02-20 02:48:03

标签: ios objective-c uitableview uiscrollview

我试图找出如何制作UITableView的内容"居中"在屏幕两侧的两个条形所包含的区域周围,以便它可以在所有屏幕尺寸的设备上工作。我的意思是:

  • 视图的初始状态应该包含该区域内的第一个单元格
  • 表视图应该能够滚动,直到最后一个单元格位于该区域内
  • 如果细胞仍在屏幕上,则细胞不应消失

我已经在桌面视图的内容偏移和插入内容中尝试了许多不同的东西,以及调整表格视图的框架,但是我不可避免地要么让插图错误或最终导致细胞消失在他们离开屏幕之前。

我想知道这是否是完全错误的方法,或者我只是设置的组合不正确。

任何提示都将不胜感激!

Screen

1 个答案:

答案 0 :(得分: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)
}