我有一个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