ReaderHive/ReaderHive/Base/View/NRTableView.swift
2025-12-16 10:36:24 +08:00

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
}
}