diff --git a/XSeri/Class/Store/Controller/XSCoinsPackViewController.swift b/XSeri/Class/Store/Controller/XSCoinsPackViewController.swift index 016ef45..28bcb9f 100644 --- a/XSeri/Class/Store/Controller/XSCoinsPackViewController.swift +++ b/XSeri/Class/Store/Controller/XSCoinsPackViewController.swift @@ -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)) + } + } }