【发布时间】:2016-08-28 22:47:30
【问题描述】:
如何启动滚动到最后一个单元格的UITableView?
- 没有动画
- 视图出现后没有
- 在表格视图甚至添加为子视图之后
只要有一个简单的UITableView(frame: CGRectZero, style: UITableViewStyle.Plain),当它出现在屏幕上时,就会开始一直滚动到底部。
我试过了:
// 1
reloadData()
scrollToRowAtIndexPath(
NSIndexPath(forItem: dataArray.count-1, inSection: 0),
atScrollPosition: .Top, animated: false
)
// 2
reloadData()
var contentOffset = self.contentOffset
contentOffset.y = CGFloat.max
setContentOffset(contentOffset, animated: false)
tableView 的init 方法(在我的子类中)
我也尝试了经典的CGAffineTransformMakeScale(1,-1) hack,但这会使我的单元格粘在底部,我希望它们粘在顶部(但滚动到底部)。 (仅当我的单元格很少,当它们没有填满整个 UITableView 空间时才相关)
编辑:另一个细节,我正在使用动态单元格UITableViewAutomaticDimension。
【问题讨论】:
-
参考developer.apple.com/library/ios/documentation/UIKit/Reference/…:我想这就是你要找的。只需将动画设置为 false。
-
对于第一个,尝试将 atScrollPosition 设置为 .Bottom。
-
只需在
viewDidLoad中调用tableView.setContentOffset(CGPointMake(0, CGFloat.max), animated: false)。 -
@Kendel 这是我的第二次尝试。 @penatheboss 试过 =/。 @ozgur 我这里没有
viewDidLoad,我只使用了UITableView,它将被添加到另一个已经加载的视图中(但只是为了放弃这种可能性,我也有相同的代码使用常规UITableViewController仍然遇到同样的问题)。
标签: ios iphone swift uitableview