// // SRPanModalContentView.swift // SynthReel // // Created by 湖北秦九 on 2025/11/18. // Copyright © 2025 SR. All rights reserved. // import UIKit import HWPanModal import SnapKit class SRPanModalContentView: HWPanModalContentView { var contentHeight = UIScreen.height * (2 / 3) var bgImage: UIImage? = UIImage(named: "pan_bg_image_01") ///更新UI contentSize发生变化时调用 func setNeedsLayoutUpdate() { self.panModalSetNeedsLayoutUpdate() } lazy var bgImageView: UIImageView = { let imageView = UIImageView(image: bgImage) return imageView }() override init(frame: CGRect) { super.init(frame: frame) addSubview(bgImageView) bgImageView.snp.makeConstraints { make in make.edges.equalToSuperview() } } // 子类更新背景图 func updateBackgroundImage(_ img: UIImage?) { self.bgImage = img self.bgImageView.image = img } // 子类更新高度 func updateContentHeight(_ height: CGFloat) { self.contentHeight = height self.panModalSetNeedsLayoutUpdate() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } //MARK: HWPanModalPresentable override func panScrollable() -> UIScrollView? { return nil } override func longFormHeight() -> PanModalHeight { return PanModalHeightMake(.content, contentHeight) } override func showDragIndicator() -> Bool { return false } override func backgroundConfig() -> HWBackgroundConfig { let config = HWBackgroundConfig() config.backgroundAlpha = 0.6 return config } override func allowsTapBackgroundToDismiss() -> Bool { return true } override func allowsDragToDismiss() -> Bool { return false } override func allowsPullDownWhenShortState() -> Bool { return false } override func showsScrollableVerticalScrollIndicator() -> Bool { return false } override func springDamping() -> CGFloat { return 1 } override func cornerRadius() -> CGFloat { return 0 } }