将行中间与UITableView中间对齐



我有一个UITableView,它应该在第一次显示时在其中间显示特定的行。在viewDidLoad中,我使用scrollToRowAtIndexPath来实现:

// Center vertically on current row
let scrollIndexPath = NSIndexPath(forRow: currentRow, inSection: 0)
tableView.scrollToRowAtIndexPath(scrollIndexPath, atScrollPosition: UITableViewScrollPosition.Middle, animated: false)

这使得当前行的顶部与表视图的中间对齐,这意味着该行的内容看起来比它应该的低。如何使middle的行与表视图的中间对齐?

UITableView是UIScrollView的子类,所以你可以使用:

scrollRectToVisible:<#(CGRect)#> animated:<#(BOOL)#>

和计算CGRect自己,这样你有更多的控制比使用:

scrollToRowAtIndexPath

最新更新