This commit is contained in:
zeng 2026-03-20 14:58:32 +08:00
parent 5eb4be4a68
commit 9d055af0f0

View File

@ -9,59 +9,76 @@ import UIKit
import SnapKit import SnapKit
class XSCoinsPackViewController: XSViewController { class XSCoinsPackViewController: XSViewController {
private var contentBgBorderImage = UIImage(named: "gradient_color_image_03") private let contentBgCornerRadius: CGFloat = 26
private let contentBgBorderImage = UIImage(named: "gradient_color_image_03")?.xs_flippedVertically()
private lazy var mainBgView = UIImageView(image: UIImage(named: "coins_pack_bg_01")) private lazy var mainBgView = UIImageView(image: UIImage(named: "coins_pack_bg_01"))
private lazy var contentBgView: UIImageView = { private lazy var contentBgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "coins_pack_bg_02")) let view = UIImageView(image: UIImage(named: "coins_pack_bg_02"))
view.layer.cornerRadius = 26 view.layer.cornerRadius = contentBgCornerRadius
view.layer.masksToBounds = true view.layer.masksToBounds = true
view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
view.layer.borderWidth = 1 view.layer.borderWidth = 1
return view return view
}() }()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.title = "My Refills".localized self.title = "My Refills".localized
xs_setupUI() xs_setupUI()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true) self.navigationController?.setNavigationBarHidden(false, animated: true)
xs_setNavigationStyle() xs_setNavigationStyle()
} }
override func viewWillLayoutSubviews() { override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews() super.viewWillLayoutSubviews()
contentBgBorderImage = contentBgBorderImage?.xs_resized(to: contentBgView.bounds.size) guard let borderImage = contentBgBorderImage?.xs_resized(to: contentBgView.bounds.size) else { return }
contentBgView.layer.borderColor = UIColor(patternImage: contentBgBorderImage!).cgColor contentBgView.layer.borderColor = UIColor(patternImage: borderImage).cgColor
} }
} }
extension XSCoinsPackViewController { extension XSCoinsPackViewController {
private func xs_setupUI() { private func xs_setupUI() {
view.addSubview(mainBgView) view.addSubview(mainBgView)
view.addSubview(contentBgView) view.addSubview(contentBgView)
mainBgView.snp.makeConstraints { make in mainBgView.snp.makeConstraints { make in
make.edges.equalToSuperview() make.edges.equalToSuperview()
} }
contentBgView.snp.makeConstraints { make in contentBgView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview() make.left.right.bottom.equalToSuperview()
make.top.equalTo(self.view.safeAreaLayoutGuide) make.top.equalTo(self.view.safeAreaLayoutGuide)
} }
} }
}
private extension UIImage {
func xs_flippedVertically() -> UIImage {
let format = UIGraphicsImageRendererFormat.default()
format.scale = scale
format.opaque = false
return UIGraphicsImageRenderer(size: size, format: format).image { context in
let cgContext = context.cgContext
cgContext.translateBy(x: 0, y: size.height)
cgContext.scaleBy(x: 1, y: -1)
draw(in: CGRect(origin: .zero, size: size))
}
}
} }