- 業(yè)務場景各種首頁經(jīng)常會有上下滾動,左右滾動的場景,如以下效果
業(yè)務場景
- 實現(xiàn)效果
demo效果
- 層級結(jié)構(gòu)

邏輯介紹
- 滾動邏輯

層級介紹
- 代碼實現(xiàn)中的一些細節(jié)處理
讓內(nèi)層的tableView滑動手勢可以傳出去,這時候需要一個繼承UITableView,以下是GestureTableView.swift文件
//
// GestureTableView.swift
// ScrollDemo
//
// Created by Dylan Chen on 2019/10/8.
// Copyright ? 2019 ScrollDemo. All rights reserved.
//
import UIKit
class GestureTableView: UITableView, UIGestureRecognizerDelegate {
var isCanScroll: Bool = false
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}
內(nèi)層防止左右滾動的時候可以上下滾動
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if scrollView == containerScrollView {
leftTableView.isScrollEnabled = false
rightTableView.isScrollEnabled = false
}
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if scrollView == containerScrollView {
leftTableView.isScrollEnabled = true
rightTableView.isScrollEnabled = true
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if scrollView == containerScrollView {
if !decelerate {
leftTableView.isScrollEnabled = true
rightTableView.isScrollEnabled = true
}
}
}