62 lines
1.6 KiB
Swift
62 lines
1.6 KiB
Swift
//
|
|
// NRTableView.swift
|
|
// ReaderHive
|
|
//
|
|
// Created by 长沙鸿瑶 on 2025/11/25.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class NRTableView: UITableView, UIGestureRecognizerDelegate {
|
|
|
|
var shouldRecognizeSimultaneously = false
|
|
|
|
|
|
var insetGroupedMargins: CGFloat = 16
|
|
|
|
|
|
override init(frame: CGRect, style: UITableView.Style) {
|
|
super.init(frame: frame, style: style)
|
|
_init()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
_init()
|
|
}
|
|
|
|
private func _init() {
|
|
separatorInset = .init(top: 0, left: 16, bottom: 0, right: 16)
|
|
self.backgroundColor = .clear
|
|
self.contentInsetAdjustmentBehavior = .never
|
|
|
|
if style == .insetGrouped {
|
|
sectionFooterHeight = 14
|
|
sectionHeaderHeight = 0.1
|
|
} else if style == .plain {
|
|
if #available(iOS 15.0, *) {
|
|
sectionHeaderTopPadding = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
override var layoutMargins: UIEdgeInsets {
|
|
set {
|
|
super.layoutMargins = newValue
|
|
}
|
|
get {
|
|
var margins = super.layoutMargins
|
|
if self.style == .insetGrouped {
|
|
margins.left = self.safeAreaInsets.left + insetGroupedMargins
|
|
margins.right = self.safeAreaInsets.right + insetGroupedMargins
|
|
}
|
|
return margins
|
|
}
|
|
}
|
|
|
|
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
|
|
return shouldRecognizeSimultaneously
|
|
}
|
|
|
|
}
|