前言
产品要做一个类似同花顺行情列表的页面,就是一个可以左右滚动的tableView。网上搜了一下,一篇博客的实现是每个cell里面放一个scrollView,然后其中一个cell滚动发通知其他的所有cell一起跟着滚动。觉得这样的实现不是太好,每个cell里面放一个scrollView,性能肯定不会太好。
所以写了这个demo。
实现
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell: UITableViewCell?
if tableView == leftTableView {
cell = tableView.dequeueReusableCell(withIdentifier: leftCellId!, for: indexPath)
(cell as! SQLeftCell).customCell(data: indexPath.row)
} else {
cell = tableView.dequeueReusableCell(withIdentifier: rightCellId!, for: indexPath)
(cell as! SQRightCell).customCell(data: indexPath.row)
}
return cell ?? UITableViewCell()
}
就是采用了两个tableView联动的方式,
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let contentoffSetY = scrollView.contentOffset.y
leftTableView.contentOffset.y = contentoffSetY
rightTableView.contentOffset.y = contentoffSetY
}
右侧的tableView嵌套在一个横向滚动的scrollView里面。
实现很简单,也没有什么技术含量。初学者也能够写的出来,主要就是给大家一个思路。
好久没写swift,写起来手生的不行,以后会在工作之余抽一点时间学习swift。自己蛮喜欢swift,功能很强大,也可以写的很简洁优雅。
网友评论