我正在尝试使用contentOffset方法将表格滚动到最后一行。当数据不多时,此方法可以正常工作但如果用户滚动到很多,则表格会占用最后一个单元格。我使用以下代码
self.delegate.table.setContentOffset(CGPointMake(0, table.contentSize.height - table.frame.size.height), animated: false)
答案 0 :(得分:0)
我认为首选方式是调用
func scrollToRow(at indexPath: IndexPath,
at scrollPosition: UITableViewScrollPosition,
animated: Bool)
在UITableView
,请参阅here
答案 1 :(得分:0)
为什么不使用scrollToRow
方法。
let lastIndex:NSIndexPath = NSIndexPath(forRow: tableView.numberOfRowsInSection(0) - 1, inSection: 0)
tableView.scrollToRowAtIndexPath(lastIndex, atScrollPosition: .Middle, animated: true)
滚动所需的时间基于contentSize。奇怪的是,当动画设置为false时,仍会使用此时间。为了使它更加快捷,在动画块中设置你自己的持续时间。
UIView.animateWithDuration(aSmallValue) {
self.tableView.scrollToRowAtIndexPath(lastIndex, atScrollPosition: .Middle, animated: true)
}
答案 2 :(得分:0)
试试这个对我有用, objective-c的代码
let scrollIndexPath:IndexPath = IndexPath(row: (tblView.numberOfRows(inSection: 0)-1), section: 0)
tblView.scrollToRow(at: scrollIndexPath, at: .bottom, animated: false)
Swift 3.0代码
{{1}}
答案 3 :(得分:0)
let offsetOfTable = CGPoint(x:0, y:self.yourTableView.contentSize.height - self.yourTableView.frame.size.height + self.FOOTER_HEIGHT);
self.yourTableView.contentOffset = offsetOfTable;