我正在寻求实现与iOS Twitter个人资料页面非常相似的功能,如此处所示:
(来源:twimg.com)
根据我所看到的,它们在顶部有一个UIView,并且一个UIScrollView覆盖了整个视图,并在UIScrollView中包含了UITableView。
这是有关复制它的教程,可以在这里看到:http://www.thinkandbuild.it/implementing-the-twitter-ios-app-ui/
我遇到的问题是如何保持UIScrollView与UITableView上滚动的动力。使用Twitter个人资料页面,您可以滚动一次平滑滑动,它将向上移动UIScrollView(显示UITableView更多),并且仍然存在的任何“动量”将开始滚动UITableView。
我认为这必须在scrollViewDidScroll中完成,并检查到达UIScrollView底部后是否剩余了任何偏移量。
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView == self.myScrollView {
var maxOffset = 25.0
let offset = scrollView.contentOffset.y
self.myScrollView.frame = CGRectMake(0, -min(offset, maxOffset), view.frame.width, view.frame.height)
if offset - maxOffset > 0 {
self.myTableView.setContentOffset(CGPointMake(0,offset-maxOffset), animated:true)
}
}
这种作品,尽管它当然不是很平滑,而且看起来好像并没有保持动力。
我不认为twitter的个人资料使用两个滚动视图。它使用一个表格视图,并通过scrollIndicatorOffsets
属性动态调整滚动指示器。如果仔细观察滚动指示器,您会发现它在向上滚动时有点发抖,这与这种方法是一致的。]