SynthReel/SynthReel/Base/View/SRPanModalContentView.swift
2025-12-02 13:27:27 +08:00

100 lines
2.3 KiB
Swift

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