iOS開發(fā) 兩層tableview嵌套滾動的實現(xiàn)邏輯

Github Demo 地址

  1. 業(yè)務場景各種首頁經(jīng)常會有上下滾動,左右滾動的場景,如以下效果
業(yè)務場景
  1. 實現(xiàn)效果
demo效果
  1. 層級結(jié)構(gòu)
邏輯介紹
  1. 滾動邏輯
層級介紹
  1. 代碼實現(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
            }
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容