知乎 iOS App 里,发现->推荐,推荐里面上半部分轮播的图片是如何随着 TableView 的滚动而滚动的?

2016-05-19 15:20:06 +08:00
 zhlooking
4647 次点击
所在节点    iOS
26 条回复
codeisjobs
2016-05-19 20:44:28 +08:00
我估计还是 scrollview 嵌套一个轮播和 tableview ,如何判断手势的话,根据需求监听响应者进行判断就行了
zhlooking
2016-05-19 20:48:39 +08:00
@chenghuang headerView 已经被下拉刷新的控件占了。现在用的做法是设置 contentInset ,再加一个 View 进去。
XDDD
2016-05-19 20:54:07 +08:00
@zhlooking 移动轮播很麻烦吗?
```
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset = UIEdgeInsets(top: topView.frame.height, left: 0, bottom: 0, right: 0)
tableView.scrollIndicatorInsets = UIEdgeInsets(top: topView.frame.height, left: 0, bottom: 0, right: 0)
}

func scrollViewDidScroll(scrollView: UIScrollView) {
var rect = topView.frame
let offset = -scrollView.contentOffset.y
let topBarheight = self.navigationController?.navigationBar.frame.height ?? 0
if offset < (topBarheight + rect.height) {
rect.origin.y = offset - topView.frame.height
} else {
rect.origin.y = topBarheight
}
topView.frame = rect
}
```

知乎的实现方法好像不是这样(观察 Indicator 的位置),不过效果差别不大
zhlooking
2016-05-19 21:00:40 +08:00
@XDDD 谢谢 :)现在实现的就是这个方式。很好奇知乎到底是怎么搞得?
cbf188
2016-05-20 00:08:11 +08:00
上知乎问问看(^_^)
misaka15
2016-05-20 15:02:00 +08:00
@zhlooking 怎么可能? contentOffset.Y 能不变,不变我吃键盘。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279788

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX