feat: Add gradient background in seismic cards

Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/74
This commit is contained in:
Andrea Busi
2024-06-24 09:00:49 +02:00
parent f6bfe3fca0
commit 78f0cfb2fa
@@ -75,6 +75,17 @@ class SeismicNetworkTableViewCell: UITableViewCell {
view.layer.shadowRadius = 2
return view
}()
private lazy var gradientView: UIImageView = {
// Per gestire il gradiente, utilizziamo una image view in cui inseriamo un'immagine
// creata ad-hoc con il gradiente desiderato.
// Le prove fatte utilizzando una view normale sono fallite perchè al momento di
// disegnare la view non abbiamo le misure corrette.
let view = UIImageView(frame: .zero)
view.translatesAutoresizingMaskIntoConstraints = false
view.contentMode = .scaleAspectFill
return view
}()
private lazy var placeLabel: UILabel = {
let label = UILabel()
@@ -195,7 +206,11 @@ class SeismicNetworkTableViewCell: UITableViewCell {
containerView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -8.0).isActive = true
containerView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 8.0).isActive = true
containerView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -4.0).isActive = true
containerView.clipsToBounds = true
containerView.addSubview(gradientView)
gradientView.constraint(to: containerView)
// this variable is used to keep track of the previous view, in order to attach proper constraints
var previousView: UIView = containerView
@@ -377,8 +392,12 @@ class SeismicNetworkTableViewCell: UITableViewCell {
let viewModel = SeismicNetworkViewModel(seismic: seismic)
containerView.backgroundColor = colors?.startColor
if let colors = colors {
gradientView.image = .gradient(from: colors.startColor, to: colors.endColor, with: .init(origin: .zero, size: .init(width: 400, height: 300)))
} else {
gradientView.image = nil
}
// update seismic data
placeLabel.text = viewModel.place
networkLabel.text = String(format: NSLocalizedString("official_provider", comment: ""), viewModel.network)