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
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 contentBgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "coins_pack_bg_02"))
view.layer.cornerRadius = 26
view.layer.cornerRadius = contentBgCornerRadius
view.layer.masksToBounds = true
view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
view.layer.borderWidth = 1
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "My Refills".localized
xs_setupUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
xs_setNavigationStyle()
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
contentBgBorderImage = contentBgBorderImage?.xs_resized(to: contentBgView.bounds.size)
contentBgView.layer.borderColor = UIColor(patternImage: contentBgBorderImage!).cgColor
guard let borderImage = contentBgBorderImage?.xs_resized(to: contentBgView.bounds.size) else { return }
contentBgView.layer.borderColor = UIColor(patternImage: borderImage).cgColor
}
}
extension XSCoinsPackViewController {
private func xs_setupUI() {
view.addSubview(mainBgView)
view.addSubview(contentBgView)
mainBgView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
contentBgView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
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))
}
}
}